Pull to refresh

Разберемся с мартышкой-трассировщицей

Reading time2 min
Views950
Читал топик про супер-производительный javascript .
С моей точеи зрения статья/перевод/кросспостинг не выдерживает никакой критики. Мало того, что автор написал отсебятину, так еще и исказил суть.
Автор дает ссылку на http://ejohn.org/blog/tracemonkey/, на самом деле ссылка должна идти на http://weblogs.mozillazine.org/roadmap/archives/2008/08/tracemonkey_javascript_lightsp.html
Если совсем не чем заняться, смотрите тут: http://www.ics.uci.edu/~franz/Site/pubs-pdf/ICS-TR-06-16.pdf


Если кто-то читал книгу дракона или немножечко знаком с методами оптимизации при компиляции кода, то сразу все поймет. Ключевой абзац из 10 строк я прокопипастил.
тот движок использует метод добавления своего кода в реальном времени для ускоренной компиляции в SpiderMonkey новый метод трансляции байт-кода в машинный код на лету.

Это неверно. На самом деле написано вот что:

* Function Inlining: Removing the overhead of function calls by simply replacing them with their resulting native code.
* Type Inference: Removing checks surrounding common operators (like "+") when the types contained within a variable are already known. This means that the engine will have already pre-determined, for example, that two strings need to be concated when it sees the "+" operator.
* Looping: The overhead of looping has been grossly diminished. It's one of the most common areas of overhead in JavaScript applications (common repetition of a task) and the constant determining of bounds and the resulting inner code is made negligible.

Если интересно, могу вечером открыть книжку Ахо, вспомнить былое и расписать по-человечески о чем идет речь.

В двух словах: «мартышка» оптимизирует циклы, вызов функций,, в том числе внутри циклов, работу со строками.
Работа со строками и циклы — тонкое место для любого компилятора.

P.S.
Если я тоже ошибаюсь, как и автор критикуемого топика, прошу указать на ошибки.
Спасибо.

P.P.S.
Давайте не будем устраивать базар, а обсуждать проблему.
Tags:
Hubs:
+37
Comments16

Articles

Change theme settings