Přidání využití paměti do Debug profileru

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Majkl578
Moderator | 1364
+
0
-

Jelikož nemohu upravovat SVN verzi Nette, píši zde.

FILE: Debug.php

FIND:

$arr[] = 'Elapsed time: ' . sprintf('%0.3f', (microtime(TRUE) - Debug::$time) * 1000) . ' ms';

AFTER ADD:

$arr[] = 'Allocated memory: ' . round(memory_get_usage() / 1000, 2) . 'kB; peak: ' . round(memory_get_peak_usage() / 1000, 2) . 'kB';

Což přidá do debug profileru hodnoty použité paměti scriptem. :)

Editoval Majkl578 (3. 5. 2009 22:22)

romansklenar
Člen | 655
+
0
-

Není třeba úpravy přímo v Nette, např:

// bootstrap.php
Debug::$counters['Allocated memory'] = TemplateHelpers::bytes(memory_get_usage()) . ' | ' . TemplateHelpers::bytes(memory_get_peak_usage()) . ' [peak]';
Majkl578
Moderator | 1364
+
0
-

To je sice pěkné, ale není to tak efektivní, jelikož to nepojme kompletní rozsah jako když to bude voláno až nakonec při shutdownu. ;)

romansklenar
Člen | 655
+
0
-

Pokud to je v bootstrapu jako poslední řádek, vychází mi to cca stejně (v memory_get_usage() je v jednotkách MB rozdíl v pár desítkách kB).

David Grudl
Nette Core | 8284
+
0
-

To není špatný nápad, mít to tam automaticky, ne?

jasir
Člen | 746
+
0
-

David Grudl napsal(a):

To není špatný nápad, mít to tam automaticky, ne?

Není, ale ta informace by neměla zabírat celý řádek, přidal bych to k Elapsed time: 234.333 ms, Memory Usage: 9.23MB
A možná je zbytečné zobrazovat čas běhu na tisíciny milisekund, ne?

romansklenar
Člen | 655
+
0
-

Jojo je to fajn, hnedka jsem si to doplnil do aplikací.

Honza Kuchař
Člen | 1662
+
0
-

David Grudl napsal(a):

To není špatný nápad, mít to tam automaticky, ne?

Jsem pro :)

Patrik Votoček
Člen | 2221
+
0
-

Ja jsem pro. Ještě by se hodilo mít tam aktuální revizi nette aby to měl člověk pořád na očích… :-)

Edit: už jsem tady o tom psal: https://forum.nette.org/…-v-profileru

Editoval vrtak-cz (5. 5. 2009 17:11)

Majkl578
Moderator | 1364
+
0
-

Díky Dejve, alespoň někdo návrh ocenil.

romansklenar: ano, v bootstrap to půjde, ale má to zádrhel. Jakmile aplikace vyprodukuje nějaký error (tj. nedojde až za $application->run()), tak se už informace o paměti nezobrazí.