1. #1
    L0|2|23's Avatar
    Registered
    09/08/02
    Location
    Mortsel
    Posts
    605
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0

    JS: alphaCompressor - minimaliseer je jscriptjes

    alphaCompressor is een javascript dat als doel heeft jouw javascriptjes zo klein mogelijk te maken.
    Versie 0.5 is sinds vandaag af, samen met een nieuwe interface, en is een aanzienlijke verbetering t.o.v. de vorige versie.

    Changelog
    • Volledig herschreven cruncher (waarvan de compressor ook afhankelijk is). Nog minder kans op fouten en verbeterde stabiliteit als gevolg.
    • Een deel van de compressor herschreven m.b.v. setTimeout() om te voorkomen dat browsers vast lijken te lopen tijdens het compressen.
    • De compressor is nu minstens 4x sneller dan de vorige versie.
    • Duidelijkere code en betere commentaar.

    Korte vergelijking met enkele andere js compressors

    Ik heb Caio Chassot's js lib (38,9kB), die ooit gefeatured werd op A List Apart, gecompressed met verschillende programma's. De onderstaande tabel geeft de resultaten weer. Dit zijn zeker niet alle compressors die ik tegengekomen ben, maar wel de bekendste/best presterende. Memtronic's compressor breekt echter wel eens vaker de scripts na compressie. Dat komt bij Dean Edwards packer en mijn eigen alphaCompressor bijna niet voor (ik gebruike vroeger namelijk Memtronic's js compressor vanwege de efficientie, maar heb naar aanleiding van het breken van de scripts na compressie met Memtronic's compressor mijn eigen compressor moeten schrijven).

    Code:
     
    Compressor________Tijd_____Grootte____Reductie
    alphaCompressor | 1'21" | 5793 Bytes | %85.54
    Memtronic       | 7'22" | 6162 Bytes | %84.62
    Dean E. Packer  | 0'02" | 8141 Bytes | %79.69
    JSMin van Douglas Crockford (grote naam in de js wereld) heb ik niet getest omdat die imo niet kwalificeert voor de test. Het is niet in js geschreven en doet ook geen echte compressie, alleen maar crunchen.
    Last edited by L0|2|23; 17-07-2007 at 14:49.
    no votes  

  2. #2
    Bram's Avatar
    Registered
    01/08/02
    Location
    Gent
    Posts
    9,675
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/361
    ik ben mootoools v1.11 eens aant compressen in safari... mor ie doet er precies wel heel lang over.
    ik heb gezien da zij die dean packer methode gebruiken... eens zien of em nu nog kleiner wordt, als het lukt.

    dang. opera kan het nie aan, safari loopt vast en firefox vraagt heel de tijd offek het wil stoppen of doordoen.
    morgen eens proberen op IE
    Last edited by Bram; 18-08-2007 at 01:58.
    If I had a nickel for every time someone told me that my idea for melting down coins to make a giant robotic parrot was a bad idea, I would have one kicka$$ giant robotic parrot.
    no votes  

  3. #3
    L0|2|23's Avatar
    Registered
    09/08/02
    Location
    Mortsel
    Posts
    605
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by SveltestSword View Post
    This quote is hidden because you are ignoring this member. Show
    ik ben mootoools v1.11 eens aant compressen in safari... mor ie doet er precies wel heel lang over.
    ik heb gezien da zij die dean packer methode gebruiken... eens zien of em nu nog kleiner wordt, als het lukt.

    dang. opera kan het nie aan, safari loopt vast en firefox vraagt heel de tijd offek het wil stoppen of doordoen.
    morgen eens proberen op IE
    Ik raad aan om onder de 80kByte te blijven, de compressietijd loopt namelijk exponentieel op i.f.v. de filesize (dit is een beperking van javascript strings, en kan opgelost worden d.m.v. blocks die dan wel de compressiefactor omlaag trekken). De compressie zelf is daardoor ook exponentieel in snelheid; eerst bijna niet vooruit te branden en naar het einde toe zeer snel (d.i. onafhankelijke van de totale compressietijd).

    De laatste versie probeert de browser vrij te maken om nog te browsen/andere dingen te doen, maar het algoritme blijkt heel erg zwaar en soms hapert het toch nog. Opera haalt bij mij de beste resultaten (30kB op ~2min, 100kB op een half uur).

    Om een paar resultaten te geven: alphaCompressor brengt jquery (uncompressed @ 62kB) naar 17.5kB in 6'20" (dat is wel wat minder dan de huidige 21.1kB die D.E.Packer hen momenteel geeft).

    Er is een ding nog niet ondersteund door de compressor: conditional compiling. Als je dus in je code /*@cc_on ... @*/ hebt staan wordt die momenteel gewoon verwijderd.

    alphaCompressor krijgt net als alphaCorners een recode in de nabije toekomst om deze problemen op te lossen.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in