2010-03-28 12 views
6

Sospecho que las llamadas de subprocesos independientes (> 15) están teniendo un efecto negativo en el rendimiento. ¿Hay una mejor manera de obtener el tiempo del sistema en aplicaciones concurrentes?Cuellos de botella de rendimiento en llamadas concurrentes a System.currentTimeInMillis()

+1

yo no lo creo, la mayoría de los sistemas operativos proporcionan un buen soporte para este tipo de función y está probablemente implementado como un método nativo. ¿Por qué culpas a este método por tus problemas de rendimiento? –

+2

¿Qué perfil ha hecho que muestra que esta función es el problema? –

Respuesta

1

Sólo un pequeño consejo:

he leído de los ingenieros de Google y otros programadores que es mejor utilizar System.nanoTime. Por ejemplo joshua bloch

para el tiempo de intervalo, utilice siempre System.nanoTime con preferencia a System.currentTimeMillis

+2

No responde la pregunta. Además, incluso de acuerdo con su cotización, System.nanoTime es preferible para la temporización de intervalo, no se menciona para qué está utilizando OP la hora del sistema. El tiempo de intervalo puede no ser aplicable aquí. –

+0

Tal vez no responda la pregunta directamente, pero creo que ya otros respondieron la pregunta, así que solo estaba dando un consejo que leí. – Alfred

+0

http://www.techper.net/2008/08/10/systemcurrenttimemillis-systemnanotime-and-their-resolution/ timeinMillis tiene problemas con la granularidad de MS windows –

5

Si realmente es un problema, puede hacer que un hilo de fondo almacene la hora actual en un volatile. O solo llámalo con menos frecuencia.

+0

+1 - Definitivamente hay algo un poco raro acerca de una aplicación que tiene que hacer frecuentes llamadas a 'System.currentTimeMillis'. –

Cuestiones relacionadas