Category Archives: Optimization
Настройка свопа и управление кэшами в Ubuntu
http://fx-files.ru/archives/704
1 |
echo 10 > /proc/sys/vm/swappiness // или sysctl -w vm.swappiness=10 |
Для сохранения настройки после перезагрузки внесите в конец файла /etc/sysctl.conf следующую строку:
1 |
vm.swappiness=10 |
Чтобы сразу применить настройку:
1 |
sysctl -p |
AngularJS: $watch за объектами
Чтобы не вызывалась лишний раз функция, нужно добавить еще один параметр true в $watch:
1 2 3 |
$rootScope.$watch('session', function (value) { $scope.profile = ProfileDataService.get(); }, true); |
Но он иногда запускает обработчик, поэтому можно сделать внутри дополнительную проверку:
1 2 3 4 5 |
$rootScope.$watch('session', function (value, valueOld) { if (! angular.equals(value, valueOld)) { $scope.profile = ProfileDataService.get(); } }); |
Google Web Tracing Framework
https://chrome.google.com/webstore/detail/web-tracing-framework/gmdhhnlkjmknaopofnadmoamhmnlicme?hl=ru
Dirty checking в AngularJS и производительность
Misko Havery рассуждает о производительности data-binding в AngularJS: http://stackoverflow.com/questions/9682092/databinding-in-angularjs/9693933#9693933
Прототипы быстрее фабричных фунций
Dan Tao : The prototype is your friend (if you care about perf) — https://coderwall.com/p/jj6fwa Очередная статья о том, почему использование прототипов лучше при больших нагрузках. Но лично мне ближе фабрики. И узким местом, требующим внимания, я такие вещи не считаю.
requestAnimationFrame
requestAnimationFrame удобен для группировки изменений DOM-структуры. В том числе между различными модулями. Позволяет избежать «layout thrashing». Работает как callback. Описание — https://developer.mozilla.org/ru/docs/DOM/window.requestAnimationFrame Пример использования и библиотека-обёртка — http://wilsonpage.co.uk/preventing-layout-thrashing/
Инструменты для автоматической оптимизации картинок
http://addyosmani.com/blog/image-optimization-tools/ — большая подборка от Addy Osmani. Задания для grunt, отдельные приложения для png, jpeg, gif и svg.
Логирование клентских ошибок через сервис
https://www.bugsense.com — дают скрипт (http://www.bugsense.com/releases/html5/1.1/download) и потом можно логировать разные клиентские ошибки (более подробное описание от авторов). Единственный минус — очень платные. Мобильные друзья используют другой сервис — http://try.crashlytics.com/, но для web решения пока нет. Вообще-то я давно писал про то, как можно логировать ошибки (https://blog.bullgare.com/2012/03/%D0%BB%D0%BE%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-js-%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D0%BA-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5/), но иногда неохота городить огород на серверной стороне, а …
Методы тестирования мобильных приложений
http://webuild.envato.com/blog/techniques-for-mobile-and-responsive-cross-browser-testing/
Оптимизация загрузки сайта для мобильных устройств
http://youtu.be/YV1nKLWoARQ Слайды:https://docs.google.com/presentation/d/1IRHyU7_crIiCjl0Gvue0WY3eY_eYvFQvSfwQouW9368/present Основные вещи: В идеале надо стараться уложиться в 14 кБ для отрисовки первичной страницы (хотя бы для основного макета со стилями). При этом стили для этого сделать встраиваемыми, т.к. для избежания FOUC (flash of unstyled content) браузер ждет догрузки css и только после этого начинает отрисовывать страницу. Javascript стараться грузить уже после отрисовки …