¡Hola comunidad de stackoverflow!Muy poca utilización de CPU en Java
Tengo un problema en el que un programa algorítmico muy complicado utiliza TOO LITTLE cpu: entre el 3 y el 4%. Toma mucho tiempo devolver los resultados, y creo que simplemente no está trabajando lo suficiente.
¿Alguno de ustedes, genios, tiene alguna idea de por qué ocurriría esto? En todo caso, esperaría un 100% de utilización. Un detalle adicional es que el programa hace inserciones en una base de datos sqlite3, y así sí, hay muchas llamadas JNI a través de la biblioteca sqlite3jdbc, creo. (Tenga en cuenta que quería diferir estas inserciones con un lote de PreparedQuery antes, pero esto causó problemas importantes de memoria, hay una gran cantidad de datos).
Gracias de antemano
ACTUALIZACIÓN: se ha corregido. Sí, solo estaba siendo un bobo, pero no esperaba que sqlite comenzara una nueva transacción y hiciera demasiada sobrecarga.
Ahora uso un PreparedStatement y hago cola 32768 entradas antes de insertarlo - me pareció un número lo suficientemente bueno.
La comunicación multiproceso es más lenta que poner en cola las actualizaciones y enjuagarlas en el mismo subproceso, y también es más complicado obtener errores. para programadores que no son "nacidos seguros para subprocesos". – Blaisorblade