Здравствуйте, Mirrorer, Вы писали:
M>Хоть считает. Уже хорошо. Но при подсчете суммы для 10^8 процесс скромно съедает 440 Мб памяти.
Продолжил игры.
НАписал простенький глагол
summ =: monad : 0
counter =. 0
sum =. 0
while. counter <: y.
do. sum =. sum + counter
counter =. counter +1.
end.
sum
)
Он работает как и положено. Память не кушает.
НО
NB. Это вычисление работает около минуты
summ 10^7
NB. А это отрабатывает меньше чем за секунду, особого потребления памяти не видно
+/ i.10^7
NB. Вычисления этого я не дождался, прервал после минут 10 работы
summ 10^7
NB. А это вычислилось за 10 секунд, хоть и скушало 440 Мб памяти, как я уже говорил
+/ i.10^8
Из чего можно сделать вывод что аут оф мемори это скорее фича чем бага. J использует какой-то хитрый алгоритм для суммирования. Интересно какой. Есть у кого-то доки, идеи ?
"Если Вы отличаетесь от меня, то это ничуть мне не вредит — Вы делаете меня богаче". Экзюпери