Cargue la desaceleración del acceso al disco de diálogo en Windows 10


6

TL; DR la combinación de mi disco duro está haciendo que los cuadros de diálogo de carga demoren unos 6 segundos en cargarse, lo que también se confirma a través del código y no puedo encontrar alivio.

Tuve Windows 7 durante mucho tiempo, ignorando 8 por completo. Mientras tenía 7 años, tuve que soportar un tiempo de inicio muy largo, pero por lo demás estaba satisfecho con el rendimiento en todo.

Justo antes de que se lanzara Windows 10, mordí la bala y la instalé para poder al menos intentar seguir el ritmo de los tiempos. Al mismo tiempo conseguí un nuevo SSD para instalarlo para aliviar mis problemas de inicio. Todo se instaló mucho más suavemente de lo que esperaba, y volví a la velocidad en poco tiempo. Los dolores de crecimiento eran casi inexistentes, excepto por una espina en mi costado: ocasionalmente, cuando abría un cuadro de diálogo de carga, tomaba ~ 5-10 segundos antes de que apareciera.

(Antes de que saltes y digas "perfil de energía", eso no es así, está configurado para no girar nunca los discos duros). Solo digo "de vez en cuando" porque me tomó un tiempo averiguar qué programas lo estaban haciendo, en Primero, creo que fue todo, pero Chrome y otros parecen haber tenido el comportamiento solucionado. El grande que todavía produce el comportamiento cada vez es Gimp 2.8; No importa lo que haga, si guardo un archivo nuevo o voy a cargar, tengo que esperar de 5 a 10 segundos para que aparezca el cuadro de diálogo.

Al principio pensé que era un error en Windows 10, pero luego que Chrome et al mejoraron, pensé que debía ser algo con Gimp, que no sería la primera rareza con la que me he encontrado con ese programa. Pero luego me acerqué un poco más al hardware y descubrí que no era culpa de Gimp.

Hago programación de juegos de Unity, y actualmente estoy trabajando en un cuadro de diálogo de guardado / carga de uso general utilizando C # (y bibliotecas Mono obsoletas). La primera vez que conseguí que el explorador de archivos funcionara, era lento como la melaza: lo atribuí a un método deficiente de mi parte, pero al optimizarlo descubrí que la mayor parte del tiempo de espera se debía a una sola línea de código:

string[] drives = System.IO.Directory.getLogicalDrives();

Después de medirlo, este retraso fue equivalente a la desaceleración de Gimp: 5,5 segundos, todo para que Windows diga "tienes una unidad C :, D :, E :, y F:". yo Hackeé una modificación a mi cuadro de diálogo de carga. por lo que mostraría este retraso de información de la unidad, y confirmó que cada vez que se ejecuta el programa, tengo un retraso de ~ 5-6 segundos. Solo para escuchar una llamada de la API del sistema para obtener una lista de las rutas del disco duro.

Para poner en perspectiva lo malo que es eso, ejecuté este mismo programa vinculado anteriormente en la computadora portátil de mi esposa, la computadora portátil de mi hermano, la computadora de mi padre (las tres en Windows 10) y la Mac mini de mi madre (después de volver a compilar para un objetivo MacOS) . En todos y cada uno de ellos, la demora es de 10s de milisegundos, exactamente lo que esperaría. El Mac mini tardó unos 20 segundos en cargar el maldito programa, pero una vez que se ejecutó, boom, menos de una décima de segundo para cargar los discos duros desde esa única línea de código.

Así que ahora estoy en una pérdida. El perfil de energía está configurado para no apagar nunca las unidades; mi BIOS está configurado a AHCI para el SSD; He configurado el archivo de página para que no sea dinámico; He deshabilitado la indexación y el servicio de búsqueda de Windows; Todo está desfragmentado. Incluso reinicié en Windows 7 para ver el estado de las cosas; ninguno de los programas tenía ningún tipo de retraso en el cuadro de diálogo de carga, pero cuando ejecuté mi pequeña herramienta de carga, mostró consistentemente 5,5 segundos para cargar las unidades.

Debo tener en cuenta que durante esos 5 segundos, no hay una gran cantidad de CPU / memoria o acceso al disco; Aquí hay una captura de pantalla del programa momentos después de ejecutarse, con el administrador de tareas en el fondo: imgur link.

Aquí hay una captura de pantalla de la administración del disco: imgur link. El disco 0 es el SSD, el disco 1 es una unidad reciente de 1 TB, el disco 2 es una unidad Caviar Black 1 TB más antigua y el disco 3 es una unidad Caviar Green 2 TB (nunca más; tiene apagado el disco de 20 minutos incorporado. I ' Estoy razonablemente seguro de que no es la causa de esto, ya que todas las pruebas repetidas aún tienen un retraso de 5 segundos.

¿Alguien tiene alguna idea de algo más que pueda probar? Básicamente estoy reducido al arranque con algunas de las unidades desconectadas para ver si alguna unidad individual está causando problemas de alguna manera (aunque intenté configurar todas las unidades, excepto las de 0 y 1, sin conexión en la administración de discos, en vano). Cualquier ayuda sería muy apreciada.

EDITAR: Algunos hallazgos adicionales: después de desconectar todas las unidades de disco duro (incluida la unidad de blu ray, dejándome solo con el único SSD), el problema persiste. Después de desconectar completamente Internet y deshabilitar el descubrimiento de la red, el problema persiste.

Además, la marca de 5.5 segundos parece ser un número sólido de roca. El tiempo de "Paseo del disco" de mi herramienta (que es el tiempo que tarda en leerse el primer nivel de directorios de cada disco) varía enormemente, mientras que el tiempo de lectura del Disco siempre está en el rango de 5.550-5.580. Esto parece indicar que algún tipo de tiempo de espera de 5.5 segundos está ocurriendo en algún lugar.

EDIT 2: Arrancé en Windows 7 con solo 2 unidades de 1TB conectadas. El tiempo de carga sigue esclavizado a la espera de 5,5 segundos, incluso sin el SSD involucrado, que mata a mi teoría principal sobre la causa raíz. Esto me sugiere que quizás haya un problema con los controladores de entrada de la placa base, tal vez?

Mi hardware , por si acaso resulta pertinente:

  • Procesador: AMD Phenom II X4 965-Negro
  • Tarjeta madre: Gigabyte GA-790XTA-UD4
  • Vídeo: AMD HD 5770
  • SSD: OCZ ARC 100 240GB
  • HDD: WD Black 1TB (2013)
  • HDD: WD Green 2TB (2011)
  • HDD: WD Black 1TB (2010)

Es agradable ver algunas pruebas de que esto no es GIMP (o el cuadro de diálogo del selector de archivos GTK +). Estamos recibiendo informes de algunos usuarios que han migrado a Windows 10 sobre el retraso, pero esto no fue uniforme en toda la base de usuarios.
Michael Schumacher

@MichaelSchumacher Supongo que ustedes no pudieron reducirlo más que "algunos usuarios de gimp en Windows 10".
ketura

Exactamente. Para ser honesto, no creo que nadie lo haya intentado ... hasta ahora, parece afectar a una minoría de sistemas (como usted mismo lo ha descubierto), y una familia de plataformas que ninguno de los principales contribuyentes está usando mucho.
Michael Schumacher

1
@MichaelSchumacher He descubierto ambos problemas. El tiempo de espera de las unidades de disquete etéreo es la causa del retraso. Indique a los usuarios que tengan ese problema que deshabiliten la unidad de disquete completamente en la BIOS y que el problema debería evaporarse. Si no tienen esa opción ... que Dios tenga misericordia de sus almas.
ketura

Respuestas:


6

Gor RAM hijo de un empresario .

Era el unidad de disquete inexistente . ¡Nadie espera el disco que no tienen!

Mi placa base tiene un controlador de disquete, que aparentemente como tecnología proviene de la época en la que verificar si hay algo conectado se consideraba una pérdida de ciclos de reloj. Cada vez que corrí System.IO.Directory.GetLogicalDrives(), estaba a la espera de que el impulso fantasmal se agotara.

Abrí mi BIOS y encontré una configuración para deshabilitar el disquete por completo, lo que causó que el problema se evaporara por completo. Gimp ahora carga sin problemas, también.

Soy un buen detective fracking.


Excelente. ¿Comprobó si esto ya estaba deshabilitado en los sistemas que no mostraron el retraso?
Michael Schumacher

1
Dos de ellos son portátiles, y uno era un Mac mini, por lo que no tienen la capacidad. Revisaré el otro escritorio una vez que tenga acceso a él. EDIT: Hmm, aunque supongo que no debería pasarlo por delante de un fabricante de computadoras portátiles para incluir algo así solo porque no se usará. Voy a hacer una doble comprobación.
ketura

Otra cosa, solo por el bien de la integridad: si vuelve a habilitar el disquete en la BIOS, ¿el retraso vuelve a ocurrir?
Michael Schumacher

1
Bleugh, sí de hecho; el retraso vuelve Gracias por hacerme sentir sucia por hacer eso. Una de las computadoras portátiles no tenía ningún controlador de disquete; Aún no he estado cerca de las otras computadoras para verificar.
ketura

5

FYI - deshabilitar Unidades de disquete & gt; Unidad de disquete en el Administrador de dispositivos trabajó para mí. Era demasiado perezoso para reiniciar y jugar con la BIOS.


Leyenda. El mío exhibía los mismos síntomas que el OP y resultó ser una tarjeta SD poco fiable que había dejado en el lector de tarjetas. ¡Esta respuesta me impulsó a pensarlo! Lo salté y ... todos volvieron a funcionar sin problemas :)
Jimbo

Upvoted. Tiene más sentido para mí deshabilitar el dispositivo en el nivel del sistema operativo.
steinar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.