-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ToDo: followsups / extras / ideas #3 #169
Comments
interesting perf
Of course nothing really happens in TZP until we receive all the JS files, at which point we start timing, but makes you wonder if trying to get most JS files under 14kb speeds up the initial loading - but wait, that's compressed .. check your network console of course I expect creepy to simply wrap it's entire code into < 14kb, because, nerd! |
I'm currently at 140kb and CSS is 157kb 😭. |
@abrahamjuliot OMG - https://bugzilla.mozilla.org/show_bug.cgi?id=1519167#c117 .. anba had to stop at part 99 |
well I got my 11.5 yr old PC down to ~210ms (including adding the webgl at around 15ms) anyway, here's my new rig, current code @abrahamjuliot ... I think I can get down to 50ms . what do you think? |
Nice. Do we lose a lot of entropy with shorter font lists? Maybe that can be cut by half. |
So I just removed a lot of fonts in windows, will check mac later on. I have a win11 desktop rig, with 182/186 fonts tested (everything MS provides incl win11, including all supplemental, and downloads such as 'Cascadia Code','Cascadia Mono') - I do not have 'Arial Unicode MS','MS Reference Specialty','MS Outlook' (which are installed with office or other MS products, IDK about office365) .. not looked at the new office font .. and I don;t have So .. I fixed some names up, and it's all peachy. I had to remove anything that is a "variant" .. black, cond, light, demi, semi, whatever, ultra, etc - because they are not stable. I have an issue open for font variants. Remember when you said you had windows 10/11 sometimes detect Arial Black and sometimes now, or Arial Narrow .. whatever. Well, this seems to be due to some change in windows and/or Firefox. I believe it's due to the OS as FF is stable as fuck on my old machine. unstable is like this
So I surmise this has to do with font-weight, and I think all I need to do is, in a new test or wrapped into this one, is break the fonts lists into weights and loop weights, list, font (and record base the same) Anyway, so fonts dropped from 240 to 190 in windows. But I added an extra char (a tofu) in the test string. The shorter the test string the faster the test (less glyphs to get per font). So perf didn't change much. The font string used in the test doesn't increase detection of fonts, but it increases the bumber of sizes collected if ("windows" === os) {
// Mō = 124 +"á" = 125 +"Ω" = 127 (win7)
// Mō - 141 +"á" = 142 +"Ω" = 144 | Mō - 141 +tofu = 154 | (win11: have 182/186 fonts
let tofu = get_fntCodes("tofu")
fntString = isTB ? "?-"+ tofu : "Mō"+ tofu ^ that's now I have a mac, I'll be doing all that for mac. Linux and android font lists don't have any "variants" I think fonts sizes may provide entropy (sort of an equivalency of system scaling, subpixels, cleartype, font version maybe), and I test them all because besides the core group they're all supplemental and you can't really leave any out - although I have, see code for why (assumptions, e.g if you have With variants, there are so many (I and I will not be testing styles, e.g. italic), I may have to be more selective. But overall, it's up to me to cover as much as possible, or all of it .. so that when we do collect some data, we can see where the entropy is coming from. At least in FF116+ it's limited to Win10+ and macOS 10.16+ (or whatever it was) |
perf
Looks like it takes about 10 fonts per ms (there's a few ms in that 21 being used for base font sizes, and re-arranging the data into an object etc) .. so 18 or 19ms for 187 fonts. I think I'm going to be adding like 100 variants, so we're not going to save here, unless it's core expected fonts everyone has and data analysis says we don't lose entropy in measurements |
I do have some ideas on how to speed up unicode measurements, maybe - but like fonts, that's an area I'm going to expand |
🔹 Pages I use to keep tabs on a few things
🟥 ToDo
🟩 perf
🟩 isVars
🟩 general: fingerprints, sections, lies
[click here]
's global FP.join()
.join()
on arrays for all sDetail data (where we can now use objects or arrays).join()
anywhere else unless we have to (or it is safe)typeof
where possible* e.g. screen metric width/height is a joined string but we already test for NaN
🟦 screen
vw
+wh
units, visualviewport etc see expand screen methods #29🟦 ua
harden oscpu: win7 vs win8/10 via tiny font checkharden userAgent from the other parts: i.e userAgent is constructed using a set methodbypass more parts of the userAgent than just version where possible🟦 feature detection
🟦 language
NumberFormat v3
1648137 + 1795756https://github.com/tc39/ecma402/pull/347
Intl.Segmenter
- 1423593, github, specTemporal
- 1519167, github, article, spec + cookbookIntl.LocaleInfo
- 1693576, githubIntl.Enumeration
- githubIntl.MessageFormat
- github🟦 storage
🟦 devices
radiusX/Y
,screenX/Y
,clientX/Y
🟦 svg
🟦 canvas
noise
fingerprint (just for toDataURL)🟦 webgl
1, 2, experimental
groups and subgroups e.g. affected byRFP/prefs
🟦 audio
DynamicsCompressorNode.reduction
- audioLies + audio data #67 (comment)ac-outputLatency
is always0
even after two tries🟦 fonts
[click here]
)system-ui
1226042🟦 media
🟦 css
window.getComputedStyle(document.getElementsByTagName("body")[0]).backgroundColor
🟦 elements
🟦 misc
🟫 BACKBURNER
and languagesections, results are not used anywherefont inflation
...
The text was updated successfully, but these errors were encountered: