Si quiero volver a crear una base de datos de mi DLL, ¿cómo hago para hacerlo?

Esta es una continuación deesta pregunt.

Estoy en el proceso de probar si cambiar el nombre de las DLL de .NET y NGENning me proporcionará más código compartido en la memoria en los servidores de terminal.

in embargo, mi plan parece tener una falla, y es que parece que no puedo encontrar un método de trabajo para encontrar un conjunto de direcciones que funcione.

o que pensé que podía hacer era lo siguiente:

Solo construye y NGEN todoInicie el programa, asegurándose de que todas las DLL se hayan cargadoUtilizar LISTDLLS / R PROGRAMNAME para obtener una lista de las direcciones actuales en uso para la instancia en ejecuciónUtilice las direcciones de esas DLL que se reasignaron como la nueva dirección base para esas dll's UN-NGEN todo, y comenzar de nuevo en 1

in embargo, esto se ha convertido en una Schrödinger ejercicio porque el acto de cambiar el nombre de algunas DLL aparentemente cambia el orden de carga o cómo el sistema operativo reubica otras DLL.

Por ejemplo, digamos que después de la ejecución inicial, tengo una lista que dice que las DLL A, B y C deben estar en la dirección 1000, 2000 y 3000. No se mencionan las DLL D, E y F, que también son parte del mismo sistema Presumiblemente, estos se cargaron en su dirección de base actual, de lo contrario supondría que LISTDLLS me diría sobre eso.

Así que cambio la dirección de A, B, C, repito todo, y ahora DLL C, D y E han sido reubicados. A y B ahora están bien, E y F ahora se reubicaron, y C todavía se está barajando.

Me doy cuenta de que este ejercicio es algo inútil, ya que independientemente de lo que descubra en mi máquina, las DLL que se usan e inyectan en el servidor terminal de destino podrían alterar esta imagen, pero pensé que si al menos pudiera asegurarme de las DLL podrían ubicarse en su dirección base prescrita y luego la cantidad de código compartido entre múltiples instancias del mismo programa aumentaría. Solo digo, para que no haya necesidad de "recordarme" eso:)

Dado que las direcciones base originales de todas nuestras DLL eran las predeterminadas, lo que significaba que todas las DLL (posiblemente excepto la primera cargada) se reubicaron y, por lo tanto, se asignaron al archivo de página, creo que habría una ganancia potencial por encima de 0. @

¿Algún consejo

Respuestas a la pregunta(1)

Su respuesta a la pregunta