Re[10]: ФП: вводная статья
От: Gaperton http://gaperton.livejournal.com
Дата: 28.09.04 17:39
Оценка:
Здравствуйте, WolfHound, Вы писали:

G>>23.59 секунд на моей системе.

WH>Execution: 21.31 Garbage collection: 0.21 Total: 21.53 и примерно 290 метров памяти.
WH>Моя программа
WH>8.66727 и примерно 12.8 метров памяти.

Чудеса оптимизации.

sieve primes i
    | i == Size    = primes
     | primes.[ i ] = sieve { primes & [ n * i ] = False \\ n <- [ 2.. (Size - 1)/i ] } ( i + 1 )
                        = sieve primes ( i + 1 )


Что сделано: заменяем [ 2*i, 3*i..Size-1 ] на [ 2..(Size — 1)/i ].

15.67 секунд, 98 мегов памяти. Вот теперь все нормально.
У тебя на компе будет ~14.16 секунд. Против 8.66 твоих. Теперь ты примерно в 1.6 раз быстрее. А разница в расходе памяти объясняется только отсутствием упаковки bool массивов. Т. е. все в порядке. Хотя такие вещи компилятор мог бы делать и сам. Ну как, сделаешь версию на char?

экзешник я заменил на новый.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.