FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Frågan låter som att den har ett självklart svar men jag börjar undra...
Jag jobbar med en stor wordpress-installation (~500000 poster/attachments). Vi har höga krav på prestanda och tillgänglighet. När man laddar hem och testar plugins som finns där ute så blir man tyvärr varse att kodkvaliteten är mycket låg. Utvecklarna tar sällan i beaktning att man kan ha många poster i en databas, dvs att man tex inte kan läsa in alla poster som finns i databasen i en array. Man får lägga mycket tid på att felsöka och fixa den typen av saker. Ett vanligt fel som vi kan se är att utvecklarna stänger av felrapportering och koder allmänt slarvigt. Tex att man anropar variabler utan att vara säker på om variablerna existerar. I produktionsmiljön har vi varit tvungna att supressa vissa felmeddelanden, annars skulle det öht inte gå vägen. Min fråga är då om man helt enkelt ska strunta i att det triggas mindre allvarliga error när koden körs? Att det prestandamässigt skulle vara bättre att dölja felmeddelandet istället för att i koden först kolla om en variabel är satt innan man kollar vad variabeln innehåller. Koden kan tex se ut på följande sätt PHP-kod:
![]() |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Nykomling
|
PHP-kod:
Fast frågan är hur mycket skillnad det gör i längden, tiden som går åt är försumbar i förhållande till t ex tiden det tar att hämta information från databasen. |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
good point!
Ändå jäkligt frustrerande att jobba med den typen av fel. I testmiljön har vi all debug påslagen då vi inte accepterar slarv i vår egenproducerade kod men då blir det helt plötsligt svårt att använda andras plugin just pga detta. Men som du säger, det ligger helt klart längst ner på priolistan över möjliga kodoptimeringar. |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Bara ett inlägg till!
|
Den stora frågan är: vill du verkligen använda moduler med så låg kodkvalitet?
Att dölja felet med @ är förresten också en dyr operation. |
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
Om du vågar
![]() script.php PHP-kod:
PHP-kod:
Senast redigerad av Jake.Nu den 2011-11-26 klockan 03:49 |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
@intedinmamma
Här är en kul och intressant film inom ämnet http://ontwik.com/php/php-performanc...asmus-lerdorf/ . När Rasmus profilerar en request mot en grundinstallation av wordpress så finner han att endast 10% av exekveringstiden går till kommunikation med databasen, något som han säger är ett varningstecken. Allt han behövde göra för att optimera sin installation avsevärt var att ta bort två widgets från sidebaren har jag för mig. @emilv Det är en avvägning man hela tiden måste göra. Vi har faktiskt en utvärderingsmall som man stödjer sig mot i bedömningen om ett plugin kan användas. @Jake.Nu Någon form av automatisering för att justera den här typen av fel vore en väg att gå. Det blir dock något mer komplext än att bara köra skriptet då mycket av funktionaliteten läggs i filter och actions. Då måste skriptet klara av den biten också. Vi använder ett väldigt bra IDE som direkt hittar en mängd fel av det här slaget. Den klarar dock inte av att man typecastar en array till ett objekt då den är omedveten om datakällan, inte heller extract_args som ofta används i wp. Därför blir det vanligtvis en varningsindikering på varenda rad i ett helt plugin ![]() Senast redigerad av znap den 2011-10-02 klockan 11:11 |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Medlem
|
"actions" och "filter".. vad är det du pratar om? Kan du ge ett exempel?
|
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Medlem
|
Det är wordpress-specifika events.
http://codex.wordpress.org/Plugin_API/Action_Reference http://codex.wordpress.org/Plugin_API/Filter_Reference |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Citat:
|
||
![]() |
![]() |
Svara |
|
|