crypt of decay - пять минут работы, а какой результат! [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

пять минут работы, а какой результат! [Sep. 2nd, 2010|04:51 am]
Previous Entry Add to Memories Tell A Friend Next Entry
tjs JavaScript engine, оооочень мелкофикс в GC, на десяток строк, тащемта. под катом — поражающий цифирью репорт.

processing ip2country database:

new
~~~
total allocated: 36,937,339
real    0m12.736s
user    0m12.511s
sys     0m0.053s


old
~~~
total allocated: 35,866,675
real    43m9.303s
user    0m30.288s
sys     42m11.192s

по-моему, это охуительно.
Linkmeow!

Comments:
From:(Anonymous)
Date:September 2nd, 2010 - 12:44 pm
(Link)
есликтонивкурсе, смотреть надо на "user"
[User Picture]
From:[info]ketmar
Date:September 2nd, 2010 - 01:23 pm
(Link)
смотреть надо на real, ващет. потому что это именно то, что в итоге и видно. а по какой из частей там сокращение — не важно (хотя почему, кстати, по sys — хуй его знает).
From:(Anonymous)
Date:September 2nd, 2010 - 04:04 pm
(Link)
тащемта в real включено также и время, пока юзерь тупит, ища "any key"
что, кмк, мы и наблюдаем
[User Picture]
From:[info]ketmar
Date:September 2nd, 2010 - 04:10 pm
(Link)
в данном случае скрипт ваще ничего не ожидает, просто молотит csv, собирая данные.
From:(Anonymous)
Date:September 2nd, 2010 - 04:21 pm
(Link)
разница между real и user явно говорит, что он чегойто ожидает, если не от юзера, то от системы
[User Picture]
From:[info]ketmar
Date:September 2nd, 2010 - 04:29 pm
(Link)
а вот я понял, что за фигня была, кажется. дело в том, что для строк пула как раз не было, они постоянно по одной выделялись. соответственно, постоянный malloc мелкой фигни, фактически, заместо больших кусков.

только что проверил: точно, оно. сбавил размер роста пула до одной строки -- и всё опять тормознуло нехило.
[User Picture]
From:[info]ketmar
Date:September 2nd, 2010 - 04:11 pm
(Link)
фишка в том, что старая версия чуть ли не после каждого чиха гоняла GC, потому что я забыл нарашивать пулы вовремя. а новая не гоняет. отсюда и ускорение в 200 раз.
From:[info]phantom
Date:September 3rd, 2010 - 03:28 pm
(Link)
В дотнете вот в каких-то структурах данных удваивают размер, когда до лимита доходит.
[User Picture]
From:[info]ketmar
Date:September 3rd, 2010 - 03:32 pm
(Link)
ну, техник дофига есть, на самом деле. и увеличение пулов тоже не особо хорошо — в плане того, что больше объектов для GC. тут надо делать incremental generational GC как минимум, но блин, я же задумывал tjs как маленький движок. а он и так уже почти до 400 кил исходников вырос.
[User Picture]
From:[info]ketmar
Date:September 3rd, 2010 - 03:33 pm
(Link)
вообще, дико тормознуть движок очень просто: достаточно скормить ему кучу данных, и он уйдёт в нирвану надолго. именно из-за GC и пулов, потому что VM не так уж сильно и тормозит, да и не важна именно в данных.
From:[info]phantom
Date:September 3rd, 2010 - 03:29 pm
(Link)
Не могу найти ссылку. Не помнишь такое?

Один чувак доказывал, что на Схеме лабать быстрее (чем на жабе, кажется). Он там какую-то программу тестовую налабал за несколько часов, когда другие лабали по 12 и больше часов.

Или шото такое.
[User Picture]
From:[info]ketmar
Date:September 3rd, 2010 - 03:34 pm
(Link)
помню. но ни линка не помню, ни задачи. и там, по-моему, была не Схема, а общелисп.