2010-03-28 6 views
6

Ich vermute, dass Aufrufe von separaten Threads (> 15) sich negativ auf die Leistung auswirken. Gibt es einen besseren Weg zur Systemzeit in gleichzeitigen Anwendungen?Leistungsengpass bei gleichzeitigen Aufrufen von System.currentTimeInMillis()

+1

würde ich nicht so denken, die meisten OSes bieten eine gute Unterstützung für diese Art von Funktion und es ist wahrscheinlich als native Methode implementiert. Warum beschuldigen Sie diese Methode für Ihre Leistungsprobleme? –

+2

Welche Profilerstellung hast du gemacht, die zeigt, dass diese Funktion das Problem ist? –

Antwort

1

Nur ein kleiner Tipp:

Ich las von Google-Ingenieuren und anderen Programmierern, dass es besser ist System.nanoTime zu verwenden. Zum Beispiel joshua bloch

für Intervallsteuerung, verwenden Sie immer System.nanoTime bevorzugt zu System.currentTimeMillis

+2

Beantwortet die Frage nicht. Auch nach Ihrem Zitat wird System.nanoTime für das Intervalltiming bevorzugt. Es wird nicht erwähnt, wofür das OP die Systemzeit verwendet. Das Intervall-Timing ist möglicherweise hier nicht anwendbar. –

+0

Vielleicht beantwortet es die Frage nicht direkt, aber ich denke, dass schon andere die Frage beantwortet haben, also habe ich nur einen Tipp gegeben, den ich gelesen habe. – Alfred

+0

http://www.techper.net/2008/08/10/systemcurrenttimemillis-systemnanotime-and-their-resolution/ timeinMillis hat Probleme mit MS Windows-Granularität –

5

Wenn es wirklich ein Problem ist, können Sie einen Hintergrund Thread speichern die aktuelle Zeit in einem volatile. Oder nenn es einfach weniger oft.

+0

+1 - es ist definitiv etwas seltsam für eine Anwendung, die häufige Aufrufe von 'System.currentTimeMillis' vornehmen muss. –

Verwandte Themen