Comments 31
Жесть — такой разброс. Я так понимаю, лучше eval получается. Спасибо статью, реально полезно.
0
лучше — враппер, для кроссбраузерности
когда везде будет натив, тогда и на него можно будет перейти
меня приятно удивила быстрая натив-поддержка в ie8, так держать, глядишь когда-нибудь руки дойдут и до ускорения самого js
когда везде будет натив, тогда и на него можно будет перейти
меня приятно удивила быстрая натив-поддержка в ie8, так держать, глядишь когда-нибудь руки дойдут и до ускорения самого js
+3
Ой, поясните пожалуйста насчет кроссбраузерности. А то хочется чтоб не только работало, но и работало хорошо :)
0
UFO just landed and posted this here
Не понимаю, чему тут удивляться если даже отточенная нативная поддержка этой функции работает в нем так же, как в опере полноценный eval и в разы медленнее, чем eval в вебките. В фаерфоксе вообще сделано для галочки, вообще никакого прироста нет. Зачем делали, не понятно.
0
Спасибо за статью. Познавательно.
… но я едва ли когда-нибудь буду обрабатывать JSON «вручную». Скорее, я воспользуюсь услугами какого-нибудь JS-фрэймворка. Например, JQuery. Так что если разработчики JQuery ещё не реализовали поддержку нативного JSON парсера, то я уверен, что они будут рады коммиту этого wrapper-а.
… но я едва ли когда-нибудь буду обрабатывать JSON «вручную». Скорее, я воспользуюсь услугами какого-нибудь JS-фрэймворка. Например, JQuery. Так что если разработчики JQuery ещё не реализовали поддержку нативного JSON парсера, то я уверен, что они будут рады коммиту этого wrapper-а.
-1
учитывая что new function только в FF 2 и 3 чуть чуть быстрее, его вообще можно не использовать. или есть какие то другие причины использовать?
0
Чота я сомневаюсь в адекватности этого теста.
Смотря в каких условиях eval быстрее новой функции, если это делать в десять раз вложенной функции думается мне результаты будут иными.
Смотря в каких условиях eval быстрее новой функции, если это делать в десять раз вложенной функции думается мне результаты будут иными.
0
имеете в виду 10 раз вложенной так:
new function() {
new function() {
new function() {
}
}
}
ну между ними еще какие то дейтсвия. так?
new function() {
new function() {
new function() {
}
}
}
ну между ними еще какие то дейтсвия. так?
0
var o;
function(){
var o;
function(){
…
function(){
var o = new Function(..)
или
var o = eval(...)
}
…
}
}
еще наверняка от длины самого JSON-а может зависить, потому как создание обекта-функции конечно долго но парсинг длинной строки js кода в eval с учетом всех видмых переменных и в замкниях… хотя конечно их в json не будет, но парсер то об этом не знает.
кстати врапер тут плохо написан отвратительно не проверяет стоку на предмет а похоже ли на json оно вообще. да еще туда сюда native метод JSON() перезаписывает — безсмысленно и безобразно.
function(){
var o;
function(){
…
function(){
var o = new Function(..)
или
var o = eval(...)
}
…
}
}
еще наверняка от длины самого JSON-а может зависить, потому как создание обекта-функции конечно долго но парсинг длинной строки js кода в eval с учетом всех видмых переменных и в замкниях… хотя конечно их в json не будет, но парсер то об этом не знает.
кстати врапер тут плохо написан отвратительно не проверяет стоку на предмет а похоже ли на json оно вообще. да еще туда сюда native метод JSON() перезаписывает — безсмысленно и безобразно.
+1
FireFox удивил.
0
Да, IE8 начинает радовать, осталось за малым, чтобы вытеснил другие версии IE :)
Интересно еще было бы увидеть результаты для Opera 10, хотя они наверно похожи на 9.64.
Интересно еще было бы увидеть результаты для Opera 10, хотя они наверно похожи на 9.64.
+1
Как раз нет. Не смотря на то, что gmail работает в 10 альфе в разы быстрее, чем в 9.64, именно этот тест он проигрывает раза эдак в 3, как eval, так и function.
0
Рано десятку еще сравнивать с другими, она пока что в стадии проработки движка. Бету уже можно будет потестировать.
0
Еще интереснее было бы увидеть результаты для Opera 9.2x, для России это (к сожалению?) пока более актуально :(
0
А тесты проводили только 1 раз или несколько и брали усередненное значение?
0
ээмм, результаты под большим сомнением. имхо нужно было на каждой итерации строить новую строку с жсоном на основании рандомных данных.
потому что возможно новые хром и сафари-4 (с яваскрипт движками с JIT) оптимизируют — видят строку в цикле и реально парсят её только 1 раз и запоминают результат.
также не написано был ли включен TraceMonkey для фф3.1, думаю если бы был включён получили бы ту же картину с эвалом что и у хрома/сафари-4.
потому что возможно новые хром и сафари-4 (с яваскрипт движками с JIT) оптимизируют — видят строку в цикле и реально парсят её только 1 раз и запоминают результат.
также не написано был ли включен TraceMonkey для фф3.1, думаю если бы был включён получили бы ту же картину с эвалом что и у хрома/сафари-4.
+1
Жалко, в этой статье нет сравнению с протоколом JSONP (через тэг script).
А ведь тэг script часто считается быстрее, чем eval или JSON.parse.
А ведь тэг script часто считается быстрее, чем eval или JSON.parse.
0
Sign up to leave a comment.
Сравнение производительности браузеров при обработке JSON-строк