Menu
RSS
Kategorie
Nejnovější články
- LíbímSeTi 2.0
- Filmové shrnutí ke konci roku
- Reklamy z té druhé stránky
- Palace Cinemas, můj druhý domov
- Nástrahy přírody
Nejnovější komentáře
| Last.fm - The Zero | |
|---|---|
| Pos | Interpret (skladby) |
| 1 | E-Type (2627) |
| 2 | Groove Coverage (2280) |
| 3 | Sylver (1393) |
| 4 | Ace of Base (1357) |
| 5 | MAYA (1046) |
| 6 | Solid Base (1014) |
| 7 | Cascada (984) |
| 8 | Verona (809) |
| 9 | Lewron Orchestra (767) |
| Last.fm - Borek | |
|---|---|
| Pos | Interpret (skladby) |
| 1 | Coldplay (782) |
| 2 | Jaromír Nohavica (422) |
| 3 | Louis Armstrong (323) |
| 4 | Pink Floyd (211) |
| 5 | Karel Kryl (202) |
| 6 | ABBA (173) |
| 7 | The Beatles (151) |
| 8 | Bobby McFerrin (113) |
| 9 | Anat Cohen (110) |

Profilování PHP (APD vs. XDebug)
O profilování a debugování PHP psal snad už každý, kdo na svém blogu občas PHP zmíní. Stejně tak se dá vygooglit kompletní konfigurace, takže i když nevíte, jak na to, stačí zadat pár klíčových slov a brzo už své php.ini aktualizujete. Mně to ale stejně nedá
.
XDebug
XDebug už jsem se snažil rozběhnout asi desetkrát. Nikdy jsem neuspěl a musím říct, že je docela frustrující, když na pěti blozích píšou "jo, xdebug je dobrej, stačí do php.ini napsat (zde následuje přesné znění mého konfiguračního souboru) a je to" a já pořád nic. Jestli je v tom nějaká černá magie... Mám správnou verzi knihovny, nastavení odpovídá manuálu i všem ostatním, a stejně nic. A tak se můžu pořád jen těšit, až jednou budu moci spustit WinCacheGrind a podívat se, jak na tom moje skripty jsou.
APD
Když jsem si teď nastavoval PHP na jednom počítači, na němž jsem přechodně pracoval, řekl jsem si, že už to musím zlomit. A tak když to s xdebugem zase nešlo, vzpomněl jsem si na jeden svazek z mé knihovny - Pokročilé programování v PHP 5 od George Schlossnagla, autora modulu APD.
Dlouho trvalo, než jsem vůbec našel zdroj, z něhož bych mohl stáhnout již zkompilovanou win32 knihovnu, protože na vlastní sestavení jsem se úplně necítil. Nakonec jsem ale zdroj našel (i když to bylo 50 MB kvůli 21 kB - proto jsem knihovnu pro PHP 5.2 nahrál i k sobě), do php.ini napsal
zend_extension_ts = "c:/php/ext/php_apd.dll"
[APD]
apd.dumpdir="C:\web\web\temp\profiler"
a po restartu Apache, přidání volání
apd_set_pprof_trace();
na začátek profilovaného skriptu a otevření stránky v prohlížeči se v nastavené složce objevil první soubor. Pozor: Ta zpětná lomítka v apd.dumpdir jsou důležitá - normální mi nešla...
Ve Windows je také trochu problém s použitím skriptu pprofp. Nějak se mi nepodařilo jej rozjet, a tak stačila lehká úprava jeho úvodu a bylo to. Prvních zhruba padesát řádků až před definici funkce parse_profile vypadá takto:
/*require "Console_Getopt.php";
error_reporting(0);
$con = new Console_Getopt;
$args = $con->readPHPArgv();
array_shift($args);
$shortoptions = 'aC:cg:hiIlmMrRsStTuUO:vXzZ';
$retval = $con->getopt( $args, $shortoptions);
if(is_object($retval)) {
usage();
}*/
echo '<pre>';
error_reporting(0);
$opt['O'] = 20;
$opt['C'] = 20;
$opt = array_merge($opt, $_GET);
/*foreach ($retval[0] as $kv_array) {
$opt[$kv_array[0]] = $kv_array[1];
}*/
$cfg = array();
$calls = array();
$mem = array();
$c_rtimes = array();
$c_stimes = array();
$c_utimes = array();
$rtimes = array();
$stimes = array();
$utimes = array();
$rtotal = 0;
$stotal = 0;
$utotal = 0;
$count = $opt['C'];
$symbol_type = array();
$num = 0;
if(!$_GET) {
usage();
}
$files = array($_GET['file']);
/*foreach($retval[1] as $f) {
$files = array_merge($files, find_files($f));
}*/
shuffle($files);
foreach($files as $path) {
if($count-- == 0) break;
if(array_key_exists('v', $opt)) { echo "Processing $path\n"; }
$num++;
parse_profile($path);
}
(stáhnout). Používá se to tak, že jednotlivé parametry předáváte metodou GET, tj. URL bude vypadat zhruba pprofp.php?file=pprof.03336.0&T&c&m&O=20.
Zařazeno do kategorie PHP.
Předchozí: Jak to ti Španělé vedou
Následující: Správa domén 3. řádu pomocí mod_rewrite
Komentáře
Nikdo ještě nekomentoval. Buď máte fakt rychlou RSS čtečku, nebo jste právě přečetli něco, co nikomu nestojí ani za trochu snahy.