¿Cómo pueden ser tan lentos los procesos de listado en el terminal en Windows? ¿Se puede acelerar esto?

¿Cómo pueden ser tan lentos los procesos de listado en el terminal en Windows? ¿Se puede acelerar esto?

Finalmente se me ocurrió este comando:

tasklist /V /NH | find "test"

Enumera todos los procesos en ejecución con información "detallada" (el "título de la ventana" es lo que necesitamos, por lo que se debe usar /V), omite la línea del encabezado y luego canaliza esto a "buscar" para que solo coincida con los procesos que contienen "prueba". " en algún lugar.

Mientras escribo esto, me doy cuenta de que busca "prueba" en cualquier parte de la línea completa generada por la lista de tareas, lo cual no es la intención (se supone que solo debe verificar la parte del título de la ventana), pero esto es de importancia secundaria ya que en la práctica nunca coincidirá ya que "prueba" es en realidad una cadena con varios espacios que es muy poco probable que aparezca en el resto de la línea.

De todos modos, el comando anterior tarda literalmente unos segundos en ejecutarse, y no se debe a la tubería para "buscar", porque lo probé sin ella. Simplemente es muy lento a la hora de obtener esta información, que uno pensaría que estaría tan disponible en la RAM que casi obtendría una respuesta.antesemitiendo el comando, pero aparentemente están aplicando una lógica complicada que parece estar leyendo grandes cantidades de almacenamiento en disco. (¿De qué otra manera explicar los segundos de carga cada vez?)

Habiendo leído el manual de "lista de tareas", no hay forma de especificar que solo me importa el "título de la ventana" y eso es todo lo que quiero que genere (lo que podría ser más rápido).

Me di cuenta de que es mucho más rápido si filtras por una "imagen" específica (EXE), pero no quiero eso, ya que se supone que esto solo debe verificar/preocuparse por el "título de la ventana" (también conocido como "título del proceso" ).

¿Alguna buena idea?

Respuesta1

Puedes filtrar por Título de ventana con /FI "WINDOWTITLE eq Window Name". Aunque no es mucho más rápido.

Puedes lograr lo mismo, pero mucho más rápido con PowerShell:

get-process | where-object {$_.mainWindowTitle -like "test*"}

Lo cual se completa en aproximadamente un segundo.

información relacionada