Co udowadnia, że domyślna implementacja TimSorta w Javie i Pythonie jest błędna.
http://envisage-project.eu/proving-android-java-and-python-sorting-algorithm-is-broken-and-how-to-fix-it/#sec1
#programowanie #gindenpoleca #python #java

It generates an input array with many short runs – too short, in the sense that they do not satisfy the invariant – which eventually causes TimSort to crash. In particular, since by breaking the invariant, the length of the runs can grow slower than expected, more than runLen.length
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Znalazłem taką fajną prezentację o #v8 #javascript
Polecam i tak wszystkim od #programowanie, bo pokazuje, jakie fajne rzeczy potrafi robić VM.
http://s3.mrale.ph/nodecamp.eu/#60 - kontekst.
http://s3.mrale.ph/nodecamp.eu/#50 - hidden class.
http://s3.mrale.ph/nodecamp.eu/#37 - kod zoptymalizowany pod VM vs. niezoptymalizowany.

#gindenpoleca - 39 osób zaufało w jakość moich wpisów, zaufaj i Ty.
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 1
@taximan: Słowo kluczowe const, pamiętaj, że to prezentacja z 2011 (np. obecnie wzrost wydajności kilkaset razy zaprezentowany na slajdach obecnie przekłada się na trzykrotną różnicę).
Było pewnie słabo zoptymalizowane.
  • Odpowiedz
tl;dr: dwie linie kodu powodują 30x przyspieszenie w Chrome i 10x zwolnienie w Firefoxie, co skutkuje, tym, że po dodaniu tych linii kod w Firefoxie jest wolniejszy prawie 1000 razy.
http://jsperf.com/nodelistoptimisation/2
Odpowiednie bug reporty już wypełnione:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1128157
- http://code.google.com/p/chromium/issues/detail?id=454088&thanks=454088&ts=1422713613
#javascript
#gindenpoleca
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@singollo: Zależy od aplikacji.
Jak robisz portfolio, a największa interaktywność to wysyłanie maili z poziomu strony, to więcej niż 5% czasu na testy nie powinieneś poświęcać.
Jeśli robisz aplikację, która steruje promem kosmicznym, to i 95% na testy jest w porządku.
  • Odpowiedz
@ihwar: czyli w sumie postulujesz wprowadzenie dynamic z restrykcjami. Trochę się to kłóci wg mnie z ideą dynamic, ale skoro ułatwiłoby kod to czemu nie :)
  • Odpowiedz
@Ginden: No to akurat nie byłby poprawny (ani nawet kompilowalny) program w C++ ;) W C teƶ nie byłby poprawny (t.j. zgodny ze standardem), ale kompilatory to puszczają.
  • Odpowiedz
@losiul: jak to niczym się nie róƶnią?

x => x + x
vs

[](int x){ return x+x; }
Owszem, są znacznie bardziej konfigurowalne. Kosztem czytelności. (co znakomicie widać na podlinkowanym przykładzie)
  • Odpowiedz
On our production frontend machines, SSL/TLS accounts for less than 1% of the CPU load, less than 10 KB of memory per connection and less than 2% of network overhead. Many people believe that SSL/TLS takes a lot of CPU time and we hope the preceding numbers will help to dispel that.

~ Adam Langley, Google
https://istlsfastyet.com/
#webdev #gindenpoleca
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ginden

różnią się czasem silniki JS

Z doświadczenia wiem, że wcale nie tak rzadko tak jest. Jako że piszę tylko i wyłącznie w Vanilla JS, często ciężko pogodzić wsparcie dla obu silników.
  • Odpowiedz