enter image description here
Оптимізація необхідна для збільшення швидкості завантаження та роботи сайтів, що в кінцевому підсумку підвищує задоволеність користувачів.
  • З точки зору User Experience (UX) фронтенд повинен забезпечувати швидке завантаження та роботу веб-сторінок.
  • А з точки зору Developer Experience (DX) нам хочеться, щоб і сам фронтенд теж працював швидко, був простий у використанні і взагалі був прикладом для наслідування.
Все це робить користувачів і розробників щасливішими, а заодно істотно покращує ранжування сайтів пошуковими системами. Наприклад, Google приділяє особливу увагу оптімізірованності фронтенда. Якщо ви досить довго билися над тим, щоб ваш сайт заробив більше балів Google Pagespeed Insights, то, сподіваємося, ця стаття допоможе вам краще зрозуміти, для чого все це потрібно і яке різноманітність стратегій оптимізації фронтенда.
Читати далі →

пілотної частини я розповів про завдання як можна докладніше. Розповідь вийшов довгим і безпредметним — в ньому не було ні одного рядка коду. Але без розуміння завдання дуже складно займатися оптимізацією. Звичайно, деякі техніки можна застосовувати, маючи на руках тільки код. Наприклад, кешувати обчислення, скорочувати розгалуження. Але мені здається, що деякі речі без розуміння завдання просто ніколи не зробити. Це і відрізняє людину від оптимізуючого компілятора. Тому ручна оптимізація все ще відіграє величезну роль: у компілятора є тільки код, а у людини є розуміння завдання. Компілятор не може прийняти рішення, що значення "4" досить випадково, а людина може.

Нагадаю, що мова піде про оптимізацію операції ресайза зображення методом згорток у реально існуючій бібліотеці Pillow. Я буду розповідати про тих змінах, що я робив кілька років тому. Але це не буде повторення слово-в-слово: оптимізації будуть описані в порядку, зручному для оповідання. Для цих статей я зробив в репозиторії окрему гілку від версії 2.6.2 — саме з цього моменту і буде йти розповідь.
Читати далі →



Євген Потапов і Антон Баранов компанії ITSumma розповідають про передчасно оптимізації. Це — розшифровка доповіді Highload++.

Ми займаємося цілодобовою підтримкою і адмініструванням веб сайтів. Працюємо в Іркутську з 2008 року. Зараз штат 50 осіб. Головний офіс в Іркутську, є офіс в Санкт-Петербурзі і Москві. На даний момент у нас більше 200 активних клієнтів, з якими відбувається понад 100 активних чатів в день. Ми отримуємо близько 150 тисяч активних повідомлень в місяць про проблеми наших клієнтів. Серед наших клієнтів — безліч різних компаній, є відомі: Lingualeo, AlterGeo, CarPrice, «Хабрахабр», KupiVip, «Наше Радіо». Є багато інтернет магазинів. Рід занять: ми повинні протягом 15 хвилин зреагувати на те, що трапилася біда, і спробувати її швидко полагодити.

Звідки береться біда, ці проблеми на серверах?

Читати далі →

Як я зробив найшвидший ресайз зображень. Частина 0

Привіт, мене звати Саша, я написав найшвидший ресайз зображень для сучасних процесорів х86. Я так стверджую, оскільки всі інші бібліотеки, які я зумів знайти і протестувати, виявилися повільніше. Я зайнявся цим завданням, коли працював над оптимізацією ресайза картинок на льоту Uploadcare. Ми вирішили відкрити код і в результаті з'явився проект Pillow-SIMD. Будь-хто з легкістю може використовувати його в додатку на мові Python.
Будь-код виконується на конкретному залозі і гарну оптимізацію можна домогтися, лише розуміючи його архітектуру. Всього я планую випустити 4 або 5 статей, в яких розповім як застосовувати знання архітектури заліза для оптимізації реальної задачі. Своїм прикладом я хочу спонукати вас оптимізувати інші прикладні задачі. Перші дві статті вийдуть протягом тижня, решта — по мірі готовності.
Читати далі →

Хто шукає, той завжди знайде. Якщо йому допомогти



Ви зробили відмінний додаток, виклали його в магазин, але там воно негайно загубилося в тисячах аналогічних продуктів. Ви не планували заробити купу грошей, у вас немає рекламного бюджету, але вам прикро, що про вашому творінні взагалі ніхто не знає. У цій статті, орієнтованої на невеликі компанії і розробників-одинаків, ми розповімо, як простими і безкоштовними засобами допомогти вашому додатку бути знайденим цільовою аудиторією.

Читати далі →

Ще один Brainfuck інтерпретатор

Brainfuck — мова програмування, створена з однією метою: написати для нього інтерпретатор. Їх було написано так багато, що навіть не буду давати на них посилання. У цій статті на пальцях пояснюється простий, але ефективний спосіб його оптимізації.
quine

Читати далі →

Data-Oriented Design на практиці

останнім часом все частіше можна зустріти обговорення цікавої, але не дуже популярною парадигми — так званої Data-Oriented Design (DOD). Якщо ви влаштовуєтеся на роботу, пов'язану з високопродуктивними обчисленнями, будьте готові до відповідних питань. Але я був дуже здивований, дізнавшись, що деякі мої колеги не чули про цьому підході і після недовго обговорення поставилися до неї скептично. У цій статті я постараюся порівняти традиційний OOP підхід з DOD.

Читати далі →

Оптимізація механіки і графіки в грі жанру «симулятор» на iOS

Зліт ігор-симуляторів як жанру кілька років тому показав, що гейміфікації піддається будь-яка рутина. Апофеозом став хайп навколо Goat Simulator, удостоившегося упоминания ключовий презентації WWDC 2015. Ми не залишилися в стороні і від цього тренда, взявши участь у розробці движка для серії додатків, симулюють роботу підземки.

Subway Simulator – серія ігор-симуляторів метро. Найперша версія гри, що вийшла в 2014 році, хоч і була досить абстрактної, підтвердила попит на продукт подібної тематики, причому досить високий — проект зайняв лідируючі позиції у своїй ніші практично відразу після запуску. Наступні апдейти і нові версії продукту були спрямовані на те, щоб зробити Subway Simulator реалістичніше: моделювання поїздів і станцій вийшло на новий рівень, а також з'явилися «локалізовані версії гри, що відображають метрополітени Нью-Йорка, Пекіна, Москви та інших міст. У даний момент сумарне число установок першої версії гри на iOS досягла майже мільйонного значення. Одночасно гра стає доступною для інших платформ.


Читати далі →

Windows Performance Station або як я вчив комп працювати ефективно

image

Здрастуйте, шановні читачі! Ось я і дістався до Хабра і хочу повідати історію свого проекту. Багато аспектів власного досвіду і роботи доводиться описувати досить загальними термінами, щоб не зачепити комерційну таємницю тих організацій, про яких йде мова.

Суть цієї розповіді в тому, щоб поділитися знайденим методом вирішення проблеми продуктивності комп'ютерів на Windows і розповісти про підхід, який дозволив зробити дане рішення повністю універсальним і індивідуальним для кожного користувача. На написання коду та підбір найбільш ефективних механізмів знадобилося близько 2х років щоденної роботи, а також консультації і допомогу від великої кількості моїх товаришів з різних IT областей, за що їм величезне спасибі.

Читати далі →

Вбивці оптимізації JS вже не такі страшні

Рік тому я побачила переклад Вбивці оптимізації, і була здивована тим, скільки потрібно тримати в голові, щоб писати оптимізований js код. Практично весь es6 потрапляв під деоптимизацию.


Новий симулятор в v8, званий TurboFan, за останній рік навчився оптимізувати практично весь es5/es6 і навіть try-catch більше не є проблемою.

class TestClass {
megaFunc() {
try {
let sum = 0;
for (let val [1, 2, 3]) {
sum += val;
}
throw new Error(`sync error, sum = ${sum}`);
}
catch(err) {
return err;
}
}
}
let test = new TestClass();
checkOptimizationStatus(test.megaFunc);

Function is optimized by TurboFan

Що залишилося не оптимізованим, а так само як перевірити свою функцію на предмет оптимізації або деоптимизации буквально в 1 дію можна побачити під катом
Читати далі →