2017-05-12 2 views
0

Ich versuche, die Timing-Informationen aus einem Java-Job und Linux-Leistungsüberwachungstool perf (speziell perf stat) zu korrelieren.Konvertieren einer Datetime-Zeichenfolge in Millisekunden UNIX-Zeitstempel

die Timing-Informationen von Java verwendet erhaltenen String tstamp0 = String.valueOf(System.currentTimeMillis()); (Diese Wesentlichen Zeit in Millisekunden von Epoche ist) während perf gibt die Zeit der Prozess begonnen hat, und die nachfolgende Aufnahme zeigen nur die Zeit verstrichen ist.

Was ich möchte, ist, konvertieren Sie die Timing-Informationen von perf stat in Millisekunden erhalten, und hier ist, wo ich versage. Ich nähere mich diesem Problem in Python.

Dieses Stück Code gibt mir die Zeitinformationen von perf

tailit = "head -n 1 " + dataset_path 
process = subprocess.Popen(tailit, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
out, err = process.communicate() 
date_time = out.split("\n")[0].split(" ")[4:] 
date = date_time[3] + "-" + date_time[0] + "-" + date_time[1] 
time = date_time[2] 
#TIMESTAMP 

INIT_TIME = datetime.datetime.strptime(date + ' ' + time, "%Y-%B-%d %H:%M:%S") + datetime.timedelta(seconds=0.01) 
#df is pandas data frame 
df['STAMPME'] = df['TCOUNT'].apply(lambda x: foobar(datetime.timedelta(seconds=x) + INIT_TIME)) 

hier foobar ist die eine Zeichenfolge in Millisekunden zeitzustempeln konvertieren folgenden, aber es macht keinen Sinn.

def foobar(INIT_TIME): 
    d = datetime.datetime.strptime(str(INIT_TIME), "%Y-%m-%d %H:%M:%S.%f").strftime('%s') 
    d_in_ms = int(d)*1000 
    return (d_in_ms) 

Jede Hilfe wird geschätzt.

EDIT: Frühere Fragen adressierten nicht das Problem der Korrelation der java timestamp (currentTimeMillis()) mit der Datetime mit Millisekunden.

Zum Beispiel: mit der Funktion foobar: mit Init_Zeitpunkt gesetzt, wie 2017-05-11 10:56:54.203, ist der Rückgabewert 1494493014000, wenn es sollte stattdessen 1494500214203 seine

+0

Mögliche Duplikate von [Konvertieren von Python-Datetime in Epoche mit strftime] (http://StackOverflow.com/Questions/11743019/Convert-Python-Datetime-to-epoch-with-strftime) – luoluo

+0

@luoluo Ich habe versucht, .. Aber hat nicht geholfen. – tandem

+0

In welcher Weise hat nicht geholfen? Wie war es unzureichend gescheitert? –

Antwort

1

Ich denke, das Problem gelöst. Sieht aus wie foobar Funktion gibt Zeit in GMT + 2 zurück, während der Java-Job die Zeit in GMT zurückgegeben wurde. also mit einer timedelta von +2, könnte ich es lösen.

Verwandte Themen