A libekrol, a kodujrafelhasznalasrol es az optimalizalasrol...

Ma volt szerencsem egyik kollega projektjebe kicsit melyebben belelatni.

A projektrol annyit erdemes tudni, hogy egy ismertebb PHP-s keretrendszerre epul, amely csinal valamit, amely hasznal meg egy 3rd party PDF generalo libet es a kod eredeti szerzoje altal fejlesztett kepmanipulalo eszkozkeszletet (lenyegeben felfoghato ez is egy liben).

Namost, ezzel onmagaban nem lenne problema. Kesz dolgokat azert szeretjuk, mert mar keszen vannak...

A problema ott kezdodik - es ami miatt megkapta a kollegam a munkat - hogy az egesz PDF generalas lassu volt. Nem picit, nem is nagyon, vallalhatatlanul lassu.

Igyhat leastunk nehanytizezer sornyi kod melyere es arra a kovetkeztetesre jutottunk, hogy teljesen jol gyorsithato lenne az egesz (kb. 18x-s gyorsitast sikerult elerni egy ordas mod gany megoldassal, leszamitva hogy picit bugos igy, de PoC-nak jo volt), ha nem 3 egymassal nem integralodo kod lenne.

Problema a kovetkezo:
- a PDF lib kizarolag fajlbol kepes dolgozni
- a PDF lib ezen ahelyett, hogy egyszer beolvasna az adatokat, idonkent tobbszor olvassa be pl a kep meretet
- a kepmanipulalo lib szinten csak fajlbol es a lenyeges funkciokat csak fajlba irja
- arra, amire a kepmanipulalo libet hasznalta az eredeti szerzo, arra 2 db GD fuggvenyhivas is eleg lett volna, ha nem fajlbol dolgozna...
- ... de maga az a kod, amelyik a PDF generalast vegzi is ugy mukodik, hogy az eredeti kepfajlt lemasolja, majd azon vegez egy kis modositast, majd azt fajlba visszairva adja at a kepmanipulalo libnek.

Szoval itt egy eros ujrairas es enyhe PDF-lib modositas befigyel...

No, ezert nem szeretek esz nelkul mindenfele 3rd party libet/kodot felhasznalni. Nem azert, hogy magam szivassam, de sajnos sokszor latom, hogy hasonlo problemakat okoz egy-egy kesz megoldas hasznalata. Az csak valakinek volt kesz, nem nekem.

Ezen kivul a mindenfele kulso megoldas hasznalataval az is bajom, hogy sokszor nem is integralhatoak egyszeruen az alaprendszerbe (pl. van sajat logolo vagy adatbazis-kezelo megoldasa), es nagyon vegyulhetnek az egyes kodolasi stilusok, modszerek, amik szinten nem feltetlen jok hosszutavon.

Hozzászólások

Ékezetek hiánya miatt mindenkitől bocs, unatkoztam HÉV-n és telóról írtam.

----------------
Lvl86 Troll

Nem opció, és amúgy is problémás, hogy sokszor csinálna jpeg ki/betömörítést. (Egyrészt ezért sem tetszik ez a megoldás).

Szerk: sokkal hatékonyabb és legalább annyira gány megoldás volt a mindenféle lib-t megkerülve közvetlen a PDF libnek átadni a képet mindenféle fájlírást megkerülve egy statikus változóban, próbaképp.

----------------
Lvl86 Troll