netch80: (finch)
[personal profile] netch80
Цикл оптимизации скорости программы завершился результатом типа "плевать на алгоритмы, лишь бы памяти мало расходовалось". Представление данных через std::string с сжатием/раздвижением по необходимости оказалось заметно выгоднее красиво разложенного по полям с инлайнингом содержимого.

Что RAM это сейчас для процессора разновидность внешнего устройства, медленного и тоскливого - я теоретически знал, но вот прощупать это настолько на практике довелось только сейчас.

Date: 2016-10-01 08:17 am (UTC)
From: [identity profile] gul-kiev.livejournal.com
Видимо, дело в разных кешах.
Вот тут об этом: https://habrahabr.ru/post/309394/
У меня тоже интуиция в этом направлении плохо работает - всё время кажется, что если всё помещается в RAM, то дальнейшая оптимизация особого выигрыша уже не даст.

Date: 2016-10-01 08:59 am (UTC)
From: [identity profile] netch80.livejournal.com
> Видимо, дело в разных кешах.

И в политике работы с памятью. Много бегать в коротком участке на порядки(!) выгоднее, чем прыгать по рассредоточенным данным. В реальном приложении это, конечно, смазывается, но всё равно получаются заметные цифры. Причём когда perf stat показывает снижение stalled-cycles-backend всего лишь где-то с 42% до 39% это уже заметно.

> У меня тоже интуиция в этом направлении плохо работает

Ну, cache-friendly и даже cache-conscious это уже хорошо начатые направления разработки.

> Вот тут об этом: https://habrahabr.ru/post/309394/

Да, там критиковали, но я бы поддержал общий посыл.

Date: 2016-10-02 08:35 am (UTC)
coctic: (Matroskin)
From: [personal profile] coctic
В HPC под проблему array of structures vs structure of arrays не одна библиотека написана, и продолжают появляться. Правда, на алгоритмы еще не плевать.

Date: 2016-10-02 09:10 am (UTC)
From: [identity profile] netch80.livejournal.com
Ну да, на HPC можно вспомнить хотя бы такое, но это слишком банальный случай.

Ещё есть ориентация на "колоночные" БД (time series) со сходным результатом.

> Правда, на алгоритмы еще не плевать.

Ну, я утрировал. Но тут таки алгоритмической сложности считай не было.

Profile

netch80: (Default)
netch80

August 2017

S M T W T F S
  12345
67 89101112
13141516171819
2021222324 2526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 19th, 2017 03:19 am
Powered by Dreamwidth Studios