2016-10-28 1 views
0

Ich versuche, xdebug zu verwenden, um eine in php7 geschriebene Anwendung zu profilieren.qcachegrind Fehler: Unbekanntes Dateiformat. Datei von PHP xdebug generiert

Ich habe ein Skript geschrieben, dass die Folge ini Einstellungen setzt:

ini_set('xdebug.trace_format',1); // Note: I tried 0 and 2 here as well 
ini_set('xdebug.profiler_enable',1); 
xdebug_start_trace('/tmp/cachegrind.out'); 
// RUN CODE HERE 
xdebug_stop_trace(); 

Lauf des Skript der cachegrind-Dateien erstellt, wie ich erwarten würde:

[email protected]:/# ls /tmp | grep cachegrind 
cachegrind.out.0028fd.xt 
cachegrind.out.0072ab.xt 
cachegrind.out.009b09.xt 
cachegrind.out.025ac3.xt 

Hier sind die ersten paar Zeilen eine Cachegrind-Datei, so dass das Format sichtbar ist:

Version: 2.4.1 
File format: 4 
TRACE START [2016-10-28 05:26:57] 
2 3784 1 0.242945 2692856 
2 3785 0 0.242955 2692800 DI\Container->set 1  /path/public/api/index.php 100 
2 3785 1 0.242966 2692800 
2 3786 0 0.242973 2692800 spl_autoload_call 0  /path/public/api/index.php 103 
3 3787 0 0.242982 2692896 Fuel\Core\Autoloader::load 1  /path/public/api/index.php 103 
4 3788 0 0.242990 2692896 strpos 0  /path/fuel/core/classes/autoloader.php 219 

Allerdings, wenn Ich versuche, diese Datei zu öffnen in qcachegrind, nicht um sie zu öffnen:

enter image description here

Die Fehlermeldung lautet: „Fehler beim Laden des /path/to/cachegrind/file: Unbekannt Dateiformat

Wer weiß, was hier vor sich geht? Ich möchte ein Tool wie dieses verwenden können, um meine Anwendung zu profilieren.

Ich schälte auch $ 30 aus, um zu versuchen, die Datei in MCG zu öffnen, aber diese App stürzt sofort beim Öffnen dieser Dateien ab.

Als Randbemerkung, ist die Datei ziemlich groß, aber nicht so groß, dass ich apps erwarten ausgeflippt:

❯ ls -al /Users/johnpc/repos/cachegrind.out.094ffa.xt 
-rw-r--r-- 1 johnpc staff 62744095 Oct 28 02:13 /Users/johnpc/repos/cachegrind.out.094ffa.xt 

Antwort

1

die Datei eine Trace-Datei kein Callgrind-Datei.

Ich sehe Sie trace_output_name und profiler_output_name in der Ini auf die gleiche Zeichenfolge oder versuchen, die falsche Datei zu öffnen. Sie müssen die Variablen profiling_ * im ini setzen. siehe: „Profilieren PHP Scripts“ im xdebug docs

eine Beispielausgabe Profilierungs sieht wie folgen aus:

version: 1 
    creator: xdebug 2.1.1rc1 
    cmd: /Users/foo/bar/test1.php 
    part: 1 
    positions: line 

    events: Time 

    fl=php:internal 
    fn=php::microtime 

, wenn Sie Probleme wegen der Dateigröße erhalten, können Sie auch die App aus profilingviewer.com versuchen

+0

Ah, ich verstehe. Wenn Sie sich die [docs] (https://xdebug.org/docs/profiler) näher ansehen, heißt es ausdrücklich: 'Diese Einstellung kann nicht in Ihrem Skript mit ini_set()' gesetzt werden – johncorser

Verwandte Themen