Ошибки, баги, вопросы - страница 2873

 


EX5 loading failed
 

Критическая ошибка при выполнении

struct pack(8) A {
typedef void (*fn)();
        fn f;
};
void OnStart() {}

Результат: EX5 loading failed

 
A100:

Влияет ли на скорость выполнения выравнивание структур?

 
fxsaber:

Влияет ли на скорость выполнения выравнивание структур?

Влияет в некоторых случаях, вот цитата: "В большинстве случаев не нужно беспокоиться о выравнивании, так как выравнивание по умолчанию уже оптимально. Однако в некоторых случаях можно добиться значительного улучшения производительности или экономии памяти, указав пользовательское выравнивание для структур данных"

 
A100:

Влияет в некоторых случаях, вот цитата: "В большинстве случаев не нужно беспокоиться о выравнивании, так как выравнивание по умолчанию уже оптимально. Однако в некоторых случаях можно добиться значительного улучшения производительности или экономии памяти, указав пользовательское выравнивание для структур данных"

Хоть бы один пример такого.

 
fxsaber:

Хоть бы один пример такого.

У меня выравнивание из-за необходимости - цитата из документации: "Выравнивание полей структуры может понадобится при обмене данными со сторонними библиотеками (*.DLL), в которых такое выравнивание применяется."

Попробуйте методом тыка перебрать все значения pack и сравнить скорость

 
A100:

Попробуйте методом тыка перебрать все значения pack и сравнить скорость

Нужно определиться, какой код замерять.

Если правильно понимаю, то выравнивание классов не предусмотрено. Т.е. вполне возможно, что при работе с массивом объектов классов (не указателей) может быть резонно поля класса заменить на выравненную структуру.

В общем, не в теме.

 
fxsaber:

Если правильно понимаю, то выравнивание классов не предусмотрено. Т.е. вполне возможно, что при работе с массивом объектов классов (не указателей) может быть резонно поля класса заменить на выравненную структуру.

Сейчас попробовал у классов pack - меняется размер

 

Вопрос по покупке библиотеки (не советник) в Маркете.

Хочу использовать библиотеку в своих исследованиях. Соответственно, она должна работать на любых счетах и Терминалах.

Такое возможно для Маркет-библиотек?

 
fxsaber:

Хоть бы один пример такого.

сомневаюсь, что много кто использует оптимизацию данных сейчас, максимум разработчики игр, но и там у каждого свои готовые движки игр, которые уже оптимизированы

прошелся поиском, имхо если и есть конкретные рекомендации, то я бы тут искал https://www.ibm.com/support/knowledgecenter/ru/

попробовал поиском, но что то не срослось - много вариантов запросов, вот ближе к теме https://www.ibm.com/support/knowledgecenter/ru/ssw_aix_72/performance/cache_tlbs.html

искал "structure pack" и  "structure performance"



если проверять, то это должна быть pod-структура и нужно максимально криво ее написать, т.е. берете все типы данных (long, int, short, char,double,float) и создаете полей 15 и максимально поля перепутать по типам данных, чтобы потом выровнять эти поля директивой pack хотя бы на границу машинного слова

ну и пробовать копировать структуры, передавать в качестве параметров функции и изменять содержимое полей


но, имхо, ощутимая разница появится если общий размер таких данных (массива структур) будет хотя бы пару мегабайт, чтобы  кэш процессора по максимуму забивать

Причина обращения: