Pull to refresh

Comments 8

Потом люди читают и такие - "ой, ну нет, фу, не буду я Фаерфоксом пользоваться - он всего 2 гигабита base64 выдаёт".

Логично, что если случайно выбранная функция оказалась хорошо оптимизированной, то и соседние функции тоже. Значит, авторы браузера в принципе уделяют внимание оптимизациям.

Честно? Не очень логично. Люди разные пишут. Люди приходят и уходят. Если кто-то написал когда-то что-то не совсем оптимально, то это ещё не значит что всё остальное такое же. И наоборот, если одна функция написана хорошо, то это не значит что и всё приложение написано также

Если функция написана хорошо, есть шанс, что и некоторые другие функции, написаны им же, тоже хорошо.
При прочих равных, если в одном приложении что-то сделано лучше чем в другом, и ничего больше об этих приложениях не известно, первое приложение выигрывает.

Для меня вообще как-то несамоочевидно, зачем через base64 гигабайты гонять. Так что о других функциях это мало что говорит (и бенчмарки этих других функций имеются, показывая, что далеко не все так однозначно).

Радует, что servo тоже участвовал в сравнении

Видимо, atob() и btoa() работают со скоростью старого Firefox. По мне, скорость 300 Мб/с тоже неплохо. Врядли реальное приложение будет загружать что-то больше 500 Мб. И тогда выигрыш будет в 1 секунду (0,15 с vs 1,5 сек).

И если скорость важна - сохраняйте Uint Arrays напрямую как бинарные Blob'ы, и считывайте из отдельных файлов как блобы, без перекодировки. Это и на треть компактнее, и можно использовать сразу.

Имхо, Base64 можно использовать для, компактной записи wasm модулей: вместо

const t = new Uint8Array([0,97,115,1,0,0,48...

const t = Uint8Array.fromBase64("blablabla..")

Sign up to leave a comment.

Articles