sebadorn.de

Kleine Code-Fragmente zur Performance-Analyse bei PHP

Benötigte Zeit, Arbeitsspeicher und DB-Zugriffe

Bei meinem CMS-Projekt aestas2 möchte ich – so weit mir mit meinem aktuellen Wissens­stand möglich – alles ordentlich erledigen und richtig machen. Features sind nicht alles, dazu gehört auch Optimierung. Dafür braucht man wiederum Zahlenwerte, die man für Vorher und Nachher vergleichen kann.

Zeitmessung

Am Einstiegspunkt des Skriptes merkt man sich den jetzigen Timestamp. Dann folgt der ganze eigentliche Ablauf mit Datenbankanfragen, Berrechnungen, Ausgaben oder was sonst geschieht. Danach, am Skriptende, wird die benötigte Zeit errechnet und ausgegeben.

$time_start = microtime( true );

[…]

$time_end = microtime( true );
$time = round( $time_end - $time_start, 4 );
echo 'Benötigte Zeit: ' . $time;

Die Messergebnisse schwanken dabei natürlich ein wenig und man sollte die Seite mehrmals neuladen, bevor man das Resultat bewertet. Beim lokalen Entwickeln ist auch zu bedenken, dass jedes weitere laufende Programm wie z.B. der Audioplayer Leistung nimmt und dadurch das Ergebnis verfälscht.

Read more

Eine Frage des Code-Stils

Kuroko und Code-Stil

Weil übersichtlich

Einrückung. Wer seinen Code nicht einrückt (HTML und CSS mal ausgenommen) gehört geschlagen und dazu verdonnert, sein nächstes Projekt komplett in Python[1] zu schreiben als erzieherische Maßnahme[2]. Ein böses Beispiel:

function foobar( $lorem, $ipsum ) {
	while( $lorem < 42 ) {
	$ipsum++;
	}
	$temp = doSomething();
	if( $temp == $ipsum )
	// Besonderer Bommel
	return 17;
	return 19;
}

Ja, du mich auch. Die beiden return sind besonders hübsch.

function foobar( $lorem, $ipsum ) {
	while( $lorem < 42 ) {
		$ipsum++;
	}
	$temp = doSomething();
	if( $temp == $ipsum )
		// Besonderer Bommel
		return 17;
	return 19;
}
Read more

Android und der Content Provider des Kalenders

Android

Für ein Projekt im Kurs „Mobile Computing“ habe ich mich zuletzt mit dem Kalender von Android-Geräten beschäftigen. Dabei gab es den einen oder anderen Stolperstein.
Entwickelt habe ich hauptsächlich auf einem Motorola Milestone mit Version 2.1.

Read more

Wir sind die Perceptrons, Widerstand ist zwecklos

Laufender Android-Emulator mit Eclipse im Hintergrund

Wenigstens einen Informatik-Beitrag sollte es in der jeweiligen Woche auch geben. Da war mal etwas mit einer Artikelreihe zu APIs, das möchte ich demnächst fortsetzen. Demnächst, wenn der Berg an noch nicht erledigten Aufgaben und Projekten für das Studium abgenommen hat. Ja ja, selbstverschuldet, weil vor mir hergeschoben.

Read more

Aktueller CMS-Stand

CMS Create

Einige Tage ist es her, dass ich den aktuellen Entwicklungsstand meines BlogCMS aestas2 hochgeladen habe und damit den vorigen Stand ablöste, der, mit nun wieder mehr studiumsverschuldeter Erfahrung betrachtet, grauenvoll gecodet und schrecklich ineffizient war. Knapp 90 Datenbankabfragen um die Seite anzuzeigen? Oh woe is me, the shame!

Read more