Login Sign Up
Advert
Your ad spot
Reserve this exclusive slot for the selected period.
Buy advertising →
Telegram community logo - Стендап Сьогодні
Added 06 Dec 2025

Стендап Сьогодні

@stendap_sogodni
Number of subscribers: 564
Photos: 181
Videos: 14
Links: 1,110
Description:
👨‍💻 Програмування та більше. Тільки власний контент. Пости щодня. Сторінка автора: https://leonid.shevtsov.me Компанія, де він працює: https://railsware.com
Source

Стендап Сьогодні | Динамічність — абстракція, яка течеХотів прокоментувати пост з Федивер...

Telegram community logo - Стендап Сьогодні Стендап Сьогодні @stendap_sogodni
391 Views/Reach 2026-01-19 21:37 Message №1442
Динамічність — абстракція, яка течеХотів прокоментувати пост з Федиверсу. Якщо коротко: чому в #JavaScript звернення pixels[i*2+1] буде швидше за pixels[i].x? Ну тобто, чому масив значень швидше за масив обʼєктів зі значеннями?Якби це був C чи навіть Go, то відповідь зрозуміла. Там масив — це блок даних в памʼяті, а обʼєкти — окремі блоки. Це зрозуміло, наприклад, тому, що для зміни довжини масиву його потрібно виділяти наново. Операції з безперервним блоком памʼяті - швидше. Але ж JavaScript дозволяє нам взагалі додавати елементи в будь-який індекс масиву, не зважаючи на його довжину. Тобто масиви в JavaScript - це очевидно не просто блок памʼяті. Чому ж все одно масив швидше?Про представлення даних в JS я вже писав. Навіть в JS масив буде ну в гіршому випадку набором блоків памʼяті. А ще в тому пості є посилання на розгорнуту відповідь про те, що V8 та інші рушії здатні оптимізувати доступ до масиву десь до рівня мови зі статичною типізацією. А от кожний обʼєкт в JS зберігається в памʼяті окремо. Наскільки я знаю.(Хто працює з C чи Go підтвердить — що там як раз легко зробити масив структур, який буде такий саме швидкий, як "голий" масив. Якщо це були структури, а не вказівники. Де-де, а в C оголошення структур для споживання блоків памʼяті — класична техніка.)В JavaScript можна піти далі та зробити масив типу Float64Array. От він вже точно буде єдиним блоком памʼяті, як в статичній мові — з такими саме обмеженнями. Якби я робив щось з графікою, то, мабуть, його б і використовував... якщо без нього було б повільно, не треба оптимізувати наперед!До чого я це все... Навіть в мові, яка не змушує тебе думати про розмір масиву чи типи даних, все одно різні мовні конструкції будуть швидше чи повільніше — незалежно від алгоритмічної складності.👑 Patreon ︙ BuyMeACoffee