powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / аллокация вектора
18 сообщений из 68, страница 3 из 3
аллокация вектора
    #39870792
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухА у меня что, сложный код в первом сообщении?стл, хотя и удобный (да и то с оговорками), но не шибко идеальный код.
...
Рейтинг: 0 / 0
аллокация вектора
    #39870977
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор ты почитал про LLVM ?
...
Рейтинг: 0 / 0
аллокация вектора
    #39871021
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предлагаешь мне новый язык изучать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
// Помимо значений-регистров, в LLVM есть и работа с памятью. Значения в памяти адресуются типизированными указателями.
// Обратиться к памяти можно с помощью двух инструкций: load и store.
// Например:
%x = load i32* %x.ptr        ; загрузить значение типа i32 по указателю %x.ptr 
%tmp = add i32 %x, 5         ; прибавить 5 
store i32 %tmp, i32* %x.ptr  ; и положить обратно
// Инструкция malloc транслируется в вызов одноимённой системной функции и выделяет память на куче, возвращая значение — указатель определённого типа.
// В паре с ней идёт инструкция free.

%struct.ptr = malloc { double, double } 
%string = malloc i8, i32 %length 
%array = malloc [16 x i32] 
free i8* %string
// Инструкция alloca выделяет память на стеке.

%x.ptr = alloca double ; %x.ptr имеет тип double* 
%array = alloca float, i32 8 ; %array имеет тип float*, а не [8 x float]!
// Память, выделенная alloca, автоматически освобождается при выходе из функции при помощи инструкций ret или unwind.
...
Рейтинг: 0 / 0
аллокация вектора
    #39871036
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухпредлагаешь мне новый язык изучать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
// Помимо значений-регистров, в LLVM есть и работа с памятью. Значения в памяти адресуются типизированными указателями.
// Обратиться к памяти можно с помощью двух инструкций: load и store.
// Например:
%x = load i32* %x.ptr        ; загрузить значение типа i32 по указателю %x.ptr 
%tmp = add i32 %x, 5         ; прибавить 5 
store i32 %tmp, i32* %x.ptr  ; и положить обратно
// Инструкция malloc транслируется в вызов одноимённой системной функции и выделяет память на куче, возвращая значение — указатель определённого типа.
// В паре с ней идёт инструкция free.

%struct.ptr = malloc { double, double } 
%string = malloc i8, i32 %length 
%array = malloc [16 x i32] 
free i8* %string
// Инструкция alloca выделяет память на стеке.

%x.ptr = alloca double ; %x.ptr имеет тип double* 
%array = alloca float, i32 8 ; %array имеет тип float*, а не [8 x float]!
// Память, выделенная alloca, автоматически освобождается при выходе из функции при помощи инструкций ret или unwind.



Ты воспринимаешь только то, что тебе хочется? Почему ты просто C++ - исходники stl не изучаешь, к чему эти движения в сторону ассемблера?

Я же привел код из stl, где вычисляется размер увеличения: 21983854 .
...
Рейтинг: 0 / 0
аллокация вектора
    #39871087
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух, я имел в виду что мир усложняется. И классическая схема компилляции как в Паскале сорц=>екзешник
уже не работает. Компилляторы двигаются к много-уровневой компилляции. Где будет много промежуточных
фаз. Или будут архитектуры вообще не похожие на Intel.

Нужно ли изучать asm x86? Я лично считаю что можно. Для расширения кругозора. И просто for fun.
Я сам этим грешен. Но к анализу проблемы резервирования памяти std::vector это не имеет отношения.
...
Рейтинг: 0 / 0
аллокация вектора
    #39871128
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё, это ты к чему вообще написал? У тебя mayton в игноре чтоли

я исходники (не только STL) изучал, изучаю и буду изучать - это всё процесс обучения
а ещё видео с конф регулярно смотрю
вот вчера/сегодня эти, например:
YouTube Video
...
Рейтинг: 0 / 0
аллокация вектора
    #39871129
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, как вы относитесь к метапрограммированию?
...
Рейтинг: 0 / 0
аллокация вектора
    #39871261
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К мета-программированию в С++ ?
...
Рейтинг: 0 / 0
аллокация вектора
    #39871315
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага
...
Рейтинг: 0 / 0
аллокация вектора
    #39871839
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Core Guidelines, T.120: Use template metaprogramming only when you really need to

хмм...
почему-то я думал, что вычисления в compile-time тесно связаны с шаблонами
...
Рейтинг: 0 / 0
аллокация вектора
    #39871843
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухага
Его можно рассматривать как составное из препроцессора (макропроцессора) и из процессора шаблонов.

С первым как-бы всё ясно.

А со вторым есть смешанные чувства. Как от восторга так и до ненависти.
...
Рейтинг: 0 / 0
аллокация вектора
    #39871848
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухCore Guidelines, T.120: Use template metaprogramming only when you really need to

хмм...
почему-то я думал, что вычисления в compile-time тесно связаны с шаблонами
а не, всё ок
авторTemplate metaprogramming is hard to get right, slows down compilation, and is often very hard to maintain.
However, there are real-world examples where template metaprogramming provides better performance than any alternative short of expert-level assembly code.
Also, there are real-world examples where template metaprogramming expresses the fundamental ideas better than run-time code.
For example, if you really need AST manipulation at compile time (e.g., for optional matrix operation folding) there may be no other way in C++.
авторT.121: Use template metaprogramming primarily to emulate concepts
Reason: Until concepts become generally available, we need to emulate them using TMP. Use cases that require concepts (e.g. overloading based on concepts) are among the most common (and simple) uses of TMP.
...
Рейтинг: 0 / 0
аллокация вектора
    #39871851
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕго можно рассматривать как составное из препроцессора (макропроцессора) и из процессора
шаблонов.

Что, в общем-то то же самое, только встроенное в первую фазу компиляции.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
аллокация вектора
    #39871895
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению нам выгодно скорее разделять, чем объединять эти фазы. Особенно при анализе проблем.
...
Рейтинг: 0 / 0
аллокация вектора
    #39871951
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какую библиотеку вы бы посоветовали в кач-ве образца кода для большого проекта (десятки тысяч строк)?
типа, "вот так надо писать, чтобы и эффективно, и сопровождать было изи"
...
Рейтинг: 0 / 0
аллокация вектора
    #39871954
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glibc.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
аллокация вектора
    #39871978
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понял, оптимально это брать за образец любой модуль аля vector и разбивать программу на такие же модули
...
Рейтинг: 0 / 0
аллокация вектора
    #39872019
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухкакую библиотеку вы бы посоветовали в кач-ве образца кода для большого проекта (десятки тысяч строк)?
не либа, но принципы SOA.
...
Рейтинг: 0 / 0
18 сообщений из 68, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / аллокация вектора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]