Archive for April, 2006

malloc overhead

Friday, April 28th, 2006

malloc() izdala vairāk atmiņas nekā tam tiek prasīts. Viena daļa no šiem baitiem tiek lietoti saimniecības uzturēšanai un otra ir “noapaļojums” līdz kādam skaitlim, kas dalās ar 2 vai citu autoriem patīkamu skaitli. Vairākumam programmētāju tas nav nekāds jaunums. Bet cik liels ir virstēriņš? Kādu laiku atpakaļ, spēlējoties ar malloc(), es uzzināju, ka glibc reālo izdalītās atmiņas izmēru glabā 4 vai 8 baitos, kas atrodas pirms malloc() atgrieztā atmiņas gabala. Slikts, bīstams, no platformas atkarīgs kods, kas parāda reālos skaitļus:

for (size_t size = 3; size < 100; size += 10) {
    void *foo = malloc(size);
    size_t real_size = *((size_t *)foo - 1);
    printf("requested: %d, got: %d\n", size, real_size);
    free(foo);
}

Nu un? Vakar vakarā paskatījos pāris GNOME programmas un izrādījās, ka virstēriņš simbolu virknēm ir pat 60% (statistika uz 500 un vairāk virknēm). Vietām šie procenti ir pietiekoši daudz, lai kaut ko darītu: viens no iespējamiem risinājumiem - GStringChunk. Būs ko darīt brīvdienās.

Update: virstēriņš laikam nekad nav lielāks par 12 baitiem, vismaz glibc uz x86, tāpēc virstēriņš lielākiem atmiņas blokiem būs relatīvi niecīgs.

The Daily Fact

Thursday, April 27th, 2006

Kāds skolotājs, tādi skolnieki.

Gaume

Monday, April 24th, 2006

- Koda rakstīšanas stils ir gaumes jautājums.
- Jā, citiem tā ir un citiem nav.

In other news: sekoju līdzi interesantai diskusijai performance-list, īpaši interesants ir Michael Meeks rakstītais.

SoC 2006

Wednesday, April 19th, 2006

Tiešām žēl, ka es vairs neesmu students.

What Have You Done For Me Lately?

Thursday, April 13th, 2006

Pēdējās nedēļas cīnos ar nevajadzīgu darbu, kas tiek veikts gnome-terminal. Viens no interesantajiem faktiem: startējot gnome-terminal fonti tiek sameklēti, atvērti un izmērīti 3 reizes, bet reāli izmantots tiek tikai 3. reizes rezultāts. Ir uzrakstīti ielāpi, kas startēšanās procesu sakārto un padara ātrāku, bet šobrīd tas ir iestrēdzis kāda cilvēka radītos šķēršļos. Līdzīgas izmaiņas ir iestrēgušas arī pie nautilus uzturētājiem. Bet gan jau pāris mēnešu laikā tie tiks pieņemti un vēl pēc pāris mēnešiem nonāks pie cilvēkiem :)

Rezultātā man ir pavasara spēku izsīkums un miega bads, ko pagaidām neizdodas kompensēt. ÄŒetras dienas bez datora būs laba iespēja atkopties.

Personāls

Thursday, April 13th, 2006

Vēlos Jūs informēt, ka šodien darbu uzņēmumā uzsācis Figaro Cimdiņš, kurš turpmāk pildīs lietotāja saskarnes programmēšanas nodaļas vadītāja pienākumus.
Vēlam veiksmi!

(spied uz bildes, lai apskatītu galeriju)

cvsdo

Thursday, April 6th, 2006

Š onakt vajadzēja uzražot ielāpu (patch), kurā bija iekļauti pāris jauni faili. CVS failus pievienot neļāva, lamājoties

cvs [server aborted]: "add" requires write access to the repository

Pajautāju Google-i un atradu jauku pamācību Creating a patch, no kurienes uzzināju par cvsdo, kas ļāva man pievienot jaunus failus un uztaisīt vienu lielu cvs diff -upN.

Un tas, savukārt, man ļauj iet gulēt.

Š½eleja

Wednesday, April 5th, 2006

Ja man vajadzētu atbildēt uz jautājumu “kas man visvairāk nepatīk popmūzikā”, es teiktu, ka šausmīgi riebjas želej-dibenu kratīšana mūzikas video un iesaistīto cilvēku sajūsma par šo procesu.
Š½ēl, ka man neviens to nejautā.

Python Web Services

Tuesday, April 4th, 2006

Kodēju SOAP servisus iekšējām (testēšanas) vajadzībām un šoreiz Java/ApacheAxis vietā nolēmu izmantot Python/SOAPpy (ZSI neatradu Gentoo pakotnēs). Wow, tas gan ir vienkārši! Nekādu WSDL, nekādu n-to failu (klašu), nekādas failu pārvietošanas (deploy) – viss vienā bullshit-free failā.

Laikam lieki teikt, ka iekš Java es vairs nevienu SOAP servisu nerakstīšu.

Thinking in C? Maybe later…

Tuesday, April 4th, 2006

Pacietīgi novilku Thinking in C, pēc tam dabūju jauno 8.5 flash, bet tik un tā nevarēju to noskatīties.

Vienīgais mierinājums – arī citiem neizdevās šo prezentāciju noskatīties.