Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Крипто-анархисты
Search
denisx
December 22, 2020
Programming
0
58
Крипто-анархисты
Про то, как разработчики любят греть устройства пользователей.
denisx
December 22, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
330
pixivアプリでマルチモジュールを実現するまで
gatosyocora
1
130
[SF Ruby, March 2024] Rails on Wasm
palkan
0
370
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
受託開発でGitLab CI を活用していく
xiombatsg
1
270
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
160
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
410
PostmanでAPIの動作確認が楽になった話
h455h1
0
110
Ruby GitHub Packages
bkuhlmann
0
620
Java 22 Overview
kishida
1
160
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
220
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
270
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
Debugging Ruby Performance
tmm1
69
11k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
20
1.6k
KATA
mclloyd
14
12k
Git: the NoSQL Database
bkeepers
PRO
421
63k
GraphQLとの向き合い方2022年版
quramy
30
12k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
The Pragmatic Product Professional
lauravandoore
24
5.8k
Build your cross-platform service in a week with App Engine
jlugia
224
17k
Transcript
Крипто-анархисты про то , как разработчики любят греть устройства пользователей
Форматирование не нужно Kb raw gz br \s \t \r
\n 178 26.7 19.6 string 130 25.2 19.1
Объединение файлов name / Kb raw br 1 11,1 1,4
2 13,8 2,7 3 102,3 15,0 sum 127,2 19,1 name / Kb raw br 1 + 2 + 3 127,2 18,3
UUID → Base 64 16 ^ 32 = 3,4 e38
340 миллиардов миллиардов миллиардов миллиардов комбинаций 64 ^ 21 = 8,5 e37 в 4 раза меньше вариантов, “всего” 85 млрд ^ 4 комбинаций UUID 4ef5ecde-b66f-4f46-b0c8-6b32f2b456b4 Base64 s83gdeAd34327Dwq2n3Ci
Компрессия хешей почти не работает name \ Kb словарь длина
строки raw br uuid 16 36 36 18,4 uuid 16 32 32 16,5 b64 64 21 21,5 16,0 id (1-7000) 10 1-4 4,8 1,9 id (16 ^ 4) 16 4 4,9 2,4 id (64 ^ 3) 64 3 3,9 2,5 нужно уменьшать сам хеш 1000 id
Geo .14 → .5 Координаты: 55.69450663197533, 37.66262491249896 точность 1,5 метра:
55.69450, 37.66262 (вход в здание) точность 15 метров: 55.6945, 37.6626 (само здание) 500 geo-points length raw br .14 18,7 7,1 .5 9,2 2,5
Получайте только нужные поля name, Kb raw br orig 235
34 short 89 19
Хеши необходимый длины name, Kb raw br orig 89 19
short 74 10
Алиасинг ключей name, Kb raw br orig 50,9 9,3 short
36,5 9,0
Уменьшение словаря name, Kb raw br orig 36,5 9,0 short
35,9 8,9
Изменение формата {"fiasId":"4ef5","ajsonId":1028,"cityNameRus ":"Шушары","path":"shushary","regionId":47} {"a":"4ef5","b":1028,"c":" Шушары","d":"shushary","e":47} ["4ef5",1028,"Шушары","shushary",47] 4ef5 1028 Шушары
shushary 47 name, Kb raw br orig 45,0 8,3 short key 32,6 8,0 array 20,0 7,5 csv (tsv) 16,8 7,3
Сжатие на лету !== сжатию для билда br level Kb
0 29,0 5 19,6 9 18,4 11 15,4 Raw 141 Kb Сжатие на лету обычно на 20-30% хуже
Спасибо, пока! Статья про стратегию уменьшения размера css- имён dev.to/denisx/reduce-bundle-size-via-one-letter-css-classname-hash-strategy-10g6
t.me/denisx | twitter.com/denisx