Si alguien ha tenido mucha experiencia con el código de tiempo ejecutándose en el hilo principal de VCL contra un hilo de fondo, me gustaría obtener una opinión. Tengo un código que ejecuta un procesamiento de cadenas pesadas en mi aplicación Delphi 6 en el hilo principal. Cada vez que ejecuto una operación, el tiempo para cada operación oscila alrededor de 50 ms en una sola hebra en mi i5 Quad core. Lo que me hace realmente sospechoso es que el mismo código que se ejecuta en un viejo Pentium 4 que tengo, muestra el mismo tiempo para la operación cuando generalmente veo que el código se ejecuta 4 veces más lento en el Pentium 4 que en el Quad Core. Estoy comenzando a preguntarme si el código puede consumir mucho menos tiempo que 50 ms, pero hay algo sobre el hilo principal de VCL, tal vez el manejo de mensajes de Windows o la ejecución de llamadas a la API de Windows, que está creando un "piso" artificial para la operación. Tenga en cuenta que, si eso es importante, una solicitud entrante inicia una operación, pero la medición de tiempo no se realiza hasta que los datos se reciben por completo.¿Puede el código que se ejecuta en un hilo de fondo ser más rápido que en el hilo principal de VCL en Delphi?
Antes de emprender el trabajo de mover todo el código a un hilo de fondo para la prueba, me pregunto si alguien tiene algún conocimiento general en esta área? ¿Cuáles han sido tus experiencias con el código ejecutándose dentro y fuera del hilo principal de VCL? Tenga en cuenta que las mediciones de temporización se realizan cuando no hay absolutamente ninguna actividad activada por el usuario durante las pruebas.
También me pregunto si elevar la prioridad del hilo justo por debajo del tiempo real sería algo bueno. Nunca he visto una gran mejora en mis tiempos de ejecución al experimentar con esas banderas.
- roschler
¿qué está utilizando para medir el tiempo de cada operación? – hatchet
¿cómo estás cronometrando? –