On 10/11/2013 11:42 PM, Bjarni Juliusson wrote:
On 10/11/2013 05:44 PM, Anders Magnusson wrote:
On 10/10/2013 03:53 PM, Bjarni Juliusson wrote:
Är det Weaver/McKee-rapporten du syftar på? Dom är inte helt optimala i sin jämförelse där, till exempel så är vaxkoden inte alls särskilt optimerad. PDP11 har dom kört på nån target som inte haft /proc/cpuinfo så det försvann ur koden.
Japp, det är Weaver & McKees rapport jag syftar på där. Informativa påpekanden; har inte hunnit titta på själva koden än.
Jag har gått igenom den nu, och har även skickat lite kommentarer till honom om den :-) Det intressantaste är egentligen lzss-storleken, eftersom den gör samma sak på alla arkitekturer.
Bara mentalt sisådär så borde alltid vax vinna över pdp11 eftersom den senare har en instruktionslängd på minst 16 bitar medan vax har 8.
Jag blev lite förvånad över att VAX inte hamnade bättre till i jämförelsen. Jag pratar inte VAX själv så jag är inte säker på detaljerna, men den arkitekturen har åtminstone nästan alla egenskaper som ger god koddensitet. Ett av problemen här var att han inte kollade bara på hur mycket kod det blev utan hur stor binären blev. Då får man en massa overhead på grund av binärformat och sånt på vax som har ELF, men pdp11 som har a.out får bara 8 bytes overhead typ.
Hm, nu blev jag ju nästan sugen på att handoptimera lite vax-assembler :-)
My work is done.
Jag gjorde det, och kapade bort mer än 10% av kodstorleken med lite enkla handgrepp. Det som gör att i386 fortfarande vinner på lzss är att ladda-och-öka-pekare är en byte på den men flera på vax, och den används flera gånger. I övrigt så blir dom rätt lika. -- Ragge