|
|
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
Есть функция, она работает с массивами. Число операций одно и то же вне зависимости от массива. Только вот когда размер массива больше, чем доступная оперативная память, время работы резко увеличивается. Будет ли оно одно и то же как при больших, так и при маленьких массивах, если оперативную память увеличить? Напомню, что число операций везде одинаковое вне зависимости от размера массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 17:21 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
Ну если убрать погружение данных в своп - несмоненно, станет лучше. Но следует помнить о существовании лимита памяти для приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 17:52 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
AkinaНо следует помнить о существовании лимита памяти для приложения. актуально только для 32-bit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 20:22 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял, "своп" -- это подкачка с жёсткого диска. Понятно, что лучше обойтись оперативкой, нежели использовать подкачку. Вопрос был, станет ли всё так же, как и с малыми массивами при том же числе операций или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 22:56 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
ayvangoЕсли я правильно понял, "своп" -- это подкачка с жёсткого диска. Понятно, что лучше обойтись оперативкой, нежели использовать подкачку. Вопрос был, станет ли всё так же, как и с малыми массивами при том же числе операций или нет. Вы задаёте вопрос, на который Вам уже ответили. Как Вы думаете, в какой момент загрузка в файл подкачки происходит? Именно тогда, когда оперативки не достаточно, что бы провести вычисления. А значит увеличив оперативку Вы получите прирост скорости (и чем больше данных будет помещаться в память, тем больше прироста скорости). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2013, 23:48 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
Я и так понял, что прирост скорости я получу. Вы просто не поняли вопрос, а вопрос заключался в том, что будет ли зависеть время работы программы от длины входного массива, если число операций одинаковое, но в оперативку все массивы влезают с запасом . Может быть, 2Гб + 2Гб хуже, чем 4 Гб или же массивы так плохо распределены в оперативке, что время работы увеличивается несмотря на то, что число операций осталось тем же и места для массивов более, чем достаточно. Ещё один вопрос: есть for(int i = 0; i < N; ++i) { a[i] = b[i] + c[i] } затем меняем на for(int i = 0; i < N; ++i) { a[i] = b[i] + c[i] x[i] = y[i] + z[i] } Почему Debug-версия резко увеличивает время работы при увеличении числа операций в цикле, а в Release-версии время работы почти не увеличивается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:44 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
Т.е. по сути вопрос - зависит ли время получения операнда по указателю от того, чему равен этот указатель... самому-то не смешно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 13:48 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
Akina, а как же NUMA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 14:16 |
|
||
|
большие массивы и оперативка
|
|||
|---|---|---|---|
|
#18+
Давайте не будем рассматривать случаи, когда весь массив валяется в L2 (речь всё же не о тех объёмах)... а в остальных случаях из-за того, что отображение логической памяти на физическую в общем случае носит статистический характер, подобного рода эффекты великолепно усредняются даже на многопроцесорных системах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 14:45 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1341768]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
410ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 698ms |

| 0 / 0 |
