Foros del Web » Programación para mayores de 30 ;) » Programación General »

activex para minimizar ventana

Estas en el tema de activex para minimizar ventana en el foro de Programación General en Foros del Web. Buenas! Necesitamos minimizar la ventana del browser (no hacerla chiquita o mandarla fuera del área de visión la pantalla) para ahorrar memoria en un sistema ...
  #1 (permalink)  
Antiguo 26/10/2006, 08:43
Avatar de UltraLogico  
Fecha de Ingreso: enero-2005
Mensajes: 21
Antigüedad: 19 años, 10 meses
Puntos: 0
Busqueda activex para minimizar ventana

Buenas!

Necesitamos minimizar la ventana del browser (no hacerla chiquita o mandarla fuera del área de visión la pantalla) para ahorrar memoria en un sistema administrativo basado en web.

Con javascript no se puede hacer eso, pero tengo entendido que con un control activex si se puede… el tema es que no tengo idea como hacer un activex para poder minimizar la ventana…

¿Alguien conoce algo ya hecho? Sino… me pueden dar una orientación para investigar o alguna otra solucion.

Saludos!
__________________
http://www.logindesarrollos.com
  #2 (permalink)  
Antiguo 26/10/2006, 15:39
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
¿Ahorrar memoria?

¿Qué memoria ahorras minimizando una ventana exactamente?
  #3 (permalink)  
Antiguo 26/10/2006, 16:14
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
supongo que te refieres al browser del cliente, no?

los controles ActiveX puedes hacerlos con C++ o con VB, incluso con Delphi.

(En windows)
al minimizar una ventana puedes liberar cierta cantidad de memoria, pero ¿por que quieres hacer eso?

en realidad la funcion que libera la memoria es SetProcessWorkingSetSize(), la cual es invocada al minimizar una aplicacion, si usas esta funcion no sería necesario minimizar nada.

el como invocarla desde una aplicacion web, ni idea.
no sé si JavaScript te permita llamar funciones del API de Windows, si es asi, pues esa sería la solucion.


Saludos.
  #4 (permalink)  
Antiguo 26/10/2006, 16:42
Avatar de UltraLogico  
Fecha de Ingreso: enero-2005
Mensajes: 21
Antigüedad: 19 años, 10 meses
Puntos: 0
Estamos haciendo un sistema administrativo que tiene una ventana principal con el menú y cada modulo se abre en ventanas extras, entonces por cada botón del menú tienes una ventana nueva… si el usuario abre 10 módulos tiene 1 al frente y los otros 9 detrás pero maximizados… entonces queremos que al minimizar la ventana del menú se minimicen el resto de las ventanas y cuando se maximice el menú se maximice junto con alguno de los módulos…

Por ahora cuando se minimiza el menú se mandan el resto de las ventanas fuera del área de visión de la pantalla… pero no se descarga la memoria porque las ventanas siguen maximizadas

Creo que lo que necesitamos es invocar desde javascript un activex para poder minimizar y maximizar las ventanas según nuestra necesidad.

Gracias por los comentarios.
__________________
http://www.logindesarrollos.com
  #5 (permalink)  
Antiguo 27/10/2006, 06:47
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Un programa no descarga su memoria por estar minimizado.

Si es que te he entendido bien, no tiene sentido lo que propones.
  #6 (permalink)  
Antiguo 27/10/2006, 07:14
Avatar de UltraLogico  
Fecha de Ingreso: enero-2005
Mensajes: 21
Antigüedad: 19 años, 10 meses
Puntos: 0
Cita:
Iniciado por MaxExtreme Ver Mensaje
Un programa no descarga su memoria por estar minimizado.

Si es que te he entendido bien, no tiene sentido lo que propones.
prueba tu mismo

pone el administrador de tareas de windows, fijate en procesos el uso de memoria del IEXPLORE.EXE y despues minimiza todas las ventanas (de ie) y fijate lo que ocupan luego

saludos!
__________________
http://www.logindesarrollos.com
  #7 (permalink)  
Antiguo 27/10/2006, 07:48
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por UltraLogico Ver Mensaje
prueba tu mismo

pone el administrador de tareas de windows, fijate en procesos el uso de memoria del IEXPLORE.EXE y despues minimiza todas las ventanas (de ie) y fijate lo que ocupan luego

saludos!
No uso dicha aplicación, así que dudo poder comprobarlo, pero dime, ¿cuánta memoria dices que ahorras minimizando unas cuantas ventanas?

Estás suponiendo varias cosas:
1. Que el usuario esté usando Internet Explorer.
2. Que la memoria que se "libera" tenga que ver con eso.
3. Que dicha memoria afecte gravemente al sistema operativo.

Y yo creo que:
1. El usuario puede no estar usando Internet Explorer.
2. El tener más o menos memoria libre no va a afectar al rendimiento del sistema, estamos hablando de pequeñas cantidades.
3. En cualquier caso, si el sistema necesita memoria para otras cosas, se va a encargar de dejar el proceso inactivo guardado y dejar la memoria a procesos más útiles.
4. De hecho, si una liberación de memoria tan importante y grande tuviese lugar como indicas, cuando maximizases la ventana de nuevo, el sistema tiene que volver a dejarlo como estaba. Es decir, hay un costo mucho mayor que haberlo dejado abierto, si estás continuamente minimizando y maximizando, y mucho más si ha sido movido al espacio de intercambio.
5. ¿Tienes constancia de que dicha memoria "se libera" realmente? Puede que esté indicada en desuso, o mil cosas similares.
  #8 (permalink)  
Antiguo 27/10/2006, 08:06
Avatar de UltraLogico  
Fecha de Ingreso: enero-2005
Mensajes: 21
Antigüedad: 19 años, 10 meses
Puntos: 0
la diferencia es de 80mb a 3mb

en realidad no tengo constancia de que realmente el dato que me da el administrador de tareas se afiable

pero si se que es mucho mas comodo para el usuario que cuando minimiza la ventana principal se minimicen el resto automaticamente y no creo que lo optimo sea mandar lejos las ventanas (si minimizarlas)

con respecto al browser sabemos que IE tiene muchos problemas, pero la aplicación administrativa que estamos desarrollando tiene mucha programación en javascript y no hay tiempo ni presupuesto para hacerla compatible tambien para firefox y otros, por eso elegimos IE porque es el browser que la mayoria de nuestros clientes usan (casi todos)... repito que no es una web publica sino un sistema administrativo en el que si no se usa IE no funciona (esto se pacto previamente asi)
__________________
http://www.logindesarrollos.com
  #9 (permalink)  
Antiguo 27/10/2006, 08:22
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Arg, javascript y similares.

No cabe duda de que comen muchos recursos cosas como los scripts que son llamados continuamente, applets Java, peliculas Flash, etc. y una aplicación sólo-Windows (como IE) podría optar por olvidarlo mientras no se vea; aún así me parece un poco exagerado lo de 80 Mb a 3 Mb, una barbaridad vaya. En cualquier caso, para el conjunto del sistema 100 Mb siguen siendo una cantidad "llevadera" (si tienen ordenadores con 256 Mb o más de RAM física).

Date cuenta de que el tener más o menos memoria libre no afecta al rendimiento. Lo que afecta es cuando la memoria libre se queda en cantidades tan pequeñas que el sistema operativo tiene que empezar a dejar partes en el disco duro. Aun así, esos casos a día de hoy me parecen poco realistas, los ordenadores tienen una RAM exagerada para usos normales.

Creo que el diseño de la página debería haber sido más cuidado desde un principio para que no generase tanta basura come-recursos, que a su vez es una de las cosas a las que hace a una página no-portable entre exploradores.

Si de verdad lo necesitas, haz el ActiveX en VB que te resultará más fácil que en C++. Sólo tienes que llamar a CloseWindow() de la API de Windows con el HWND de la ventana que quieras minimizar:

BOOL CloseWindow(HWND hWnd);

Devuelve distinto de 0 si no ha ocurrido ningún error.

Infórmate aquí:

http://msdn.microsoft.com/library/de...losewindow.asp
  #10 (permalink)  
Antiguo 28/10/2006, 06:24
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
No lo creo, CloseWindow(HWND); a pesar de minimizar la ventana no hace otra tarea como liberar memoria.

por tanto no funcionaria mas que para ocultar tus ventanas.
en ese caso te puede servir mas ShowWindow();
con SW_MINIMIZE, de esta forma minimizaras la ventana liberando memoria.
que supongo es lo que te interesa.

Saludos.
  #11 (permalink)  
Antiguo 28/10/2006, 07:31
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
No lo creo, CloseWindow(HWND); a pesar de minimizar la ventana no hace otra tarea como liberar memoria.

por tanto no funcionaria mas que para ocultar tus ventanas.
en ese caso te puede servir mas ShowWindow();
con SW_MINIMIZE, de esta forma minimizaras la ventana liberando memoria.
que supongo es lo que te interesa.
¿Eso en que documentacion figura? Por favor ... hay que tener un poco de rigor ...

http://msdn.microsoft.com/library/en...asp?frame=true

"SW_MINIMIZE
Minimizes the specified window and activates the next top-level window in the Z order." ¿Donde dice que esto libere memoria? Seguramente en la parte de activar la siguiente ventana ...

CloseWindow es la funcion especifica para hacer esto y termina llamando a ShowWindow con el parametro CORRECTO que es SW_SHOWMINIMIZED y no SW_MINIMIZE.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #12 (permalink)  
Antiguo 28/10/2006, 13:19
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
MSDN: "The CloseWindow function minimizes (but does not destroy) the specified window."

Ciertamente Nivel7, ¿de dónde te has sacado lo de la liberación de memoria? Yo no lo veo...

De hecho, leyendo la documentación de SetProcessWorkingSetSize(), no "libera" ninguna memoria. Lo que hace (en palabras vulgares) es asignar cuánta memoria debería haber en la RAM para ese proceso y cuánta en el disco duro en el fichero de intercambio. Tanto que si se llama con (SIZE_T)-1 para los parámetros de mínimo y máximo, mete toda la RAM al disco duro.

Tal acción es costosa, tiene una gran pérdida de tiempo y si se cambian muchas ventanas constantemente, como el creador del topic pretende, lo único que hará será ralentizar el sistema más que agilizarlo.

El gasto de memoria no es pérdida de rendimiento, la copia RAM<->HD sí.

Por lo que, como el creador del topic dice, Internet Explorer "libera" memoria al minimizar la ventana, y si lo que dices es cierto (que se llama a SetWorkingSetSize()), lo único que se hace es pasarlo al fichero de intercambio como ya supuse, nada de "liberar".

Última edición por MaxExtreme; 28/10/2006 a las 13:31
  #13 (permalink)  
Antiguo 28/10/2006, 14:29
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
En cuanto a que puede consumir tiempo y recursos, es cierto, es por eso que no se tiene que usar continuamente.(Generalmente es el SO quien la usa).


esta funcion es exclusiva de los SO Windows de 32 bits, por tanto no funciona en Windows anteriores y la liberacion de memoria al minimizar la ventana tampoco se contempla(supongo), es por eso que ShowWindow con SW_SHOWMINIMIZED no libera memoria, pero si lo hace con SW_MINIMIZE..

aqui dejo una pequena aplicacion en la que pongo a prueba estas funciones:

Código:
#include <windows.h>

#define IDB_CLOSE 100
#define IDB_MINIMIZE 200
#define IDB_MIN_NO_FREE 300
/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           328,                 /* The programs width */
           100,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_CREATE:
            CreateWindow("Button", "Cerrar", BS_PUSHBUTTON|WS_VISIBLE|WS_CHILD,
                         10, 10, 100, 23, hwnd, (HMENU)IDB_CLOSE, GetModuleHandle(NULL), NULL);
            CreateWindow("Button", "MinSiLibera", BS_PUSHBUTTON|WS_VISIBLE|WS_CHILD,
                         110, 10, 100, 23, hwnd, (HMENU)IDB_MINIMIZE, GetModuleHandle(NULL), NULL);
            CreateWindow("Button", "MinNoLibera", BS_PUSHBUTTON|WS_VISIBLE|WS_CHILD,
                         210, 10, 100, 23, hwnd, (HMENU)IDB_MIN_NO_FREE, GetModuleHandle(NULL), NULL);
            break;
        case WM_COMMAND:
            switch(LOWORD(wParam))
            {
                case IDB_CLOSE:
                    CloseWindow(hwnd);
                    break;
                case IDB_MINIMIZE:
                    ShowWindow(hwnd, SW_MINIMIZE);
                    break;
                case IDB_MIN_NO_FREE:
                    ShowWindow(hwnd, SW_SHOWMINIMIZED);
                    break;
            }
            break;
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}
Es verdad que no libera realmente ya que esto es imposible, todo proceso requiere de una determinada cantidad de memoria para funcionar. pero quitar de la RAM una aplicacion qe no se esta utilizando ya es algo.
Segun veo el proposito es hacer una mejor precentacion de su aplicacion, usando Closewindow(), conseguiría minimizar las demas ventanas, pero minimizando con SW_MINIMIZE, ademas de lograr ese proposito, despejaria un poco la RAM.

Aproposito ¿como obtendría el HWND?.

Saludos.

Última edición por Nivel7; 28/10/2006 a las 14:53
  #14 (permalink)  
Antiguo 28/10/2006, 14:50
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
esta funcion es exclusiva de los SO Windows de 32 bits, por tanto no funciona en Windows anteriores y la liberacion de memoria al minimizar la ventana tampoco se contempla(supongo), es por eso que ShowWindow con SW_SHOWMINIMIZED no libera memoria, pero si lo hace con SW_MINIMIZE.
No es cierto, tambien existe en las versiones de 64 bits. No se libera ninguna memoria, se pagina como te dijo MaxExtreme anteriormente.

http://support.microsoft.com/?scid=k...3215&x=15&y=21

Cita:
Iniciado por Nivel7 Ver Mensaje
Es verdad que no libera realmente ya que esto es imposible, todo proceso requiere de una determinada cantidad de memoria para funcionar. pero quitar de la RAM una aplicacion qe no se esta utilizando ya es algo.
Tambien podria cerrarla si no se esta usando :D

Cita:
Iniciado por Nivel7 Ver Mensaje
Segun veo el proposito es hacer una mejor precentacion de su aplicacion, usando Closewindow(), conseguiría minimizar las demas ventanas, pero minimizando con SW_MINIMIZE, ademas de lograr ese proposito, despejaria un poco la RAM.
De ser asi como tambien te dijeron seria contraproducente al restaurar esas ventanas ya que cuanto mayor "despeje" de RAM mayor "restauracion" desde el disco a la RAM cuando se intente acceder a esa memoria paginada ... "As a result of this trimming, a process may experience significantly poorer performance because its memory pages are being faulted back into RAM."
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Última edición por Eternal Idol; 28/10/2006 a las 15:03
  #15 (permalink)  
Antiguo 28/10/2006, 15:35
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
La cuestion no es si estoy o no equivocado, lo que menciono es que Windows hace esta tarea por defecto con la mayoria(si no es que todas) de las aplicaciones.

en el primer mensaje pense que solo era una ventana y su proposito era liberar, pense que usar directamente SetProces...(), era lo mejor,
sin embargo el quiere hacer mas presentable una aplicacion Web de varias ventanas.
el qiere minimizar las ventanas no utilizadas, y lo sugiera o nó, nivel7 el SO, despejara la RAM al minimizar las ventanas

esto no es problema.

ejemplo:

ejecuto Exel, abro 100 documentos, me consumen un aproximado de 20 Mg, al minimizar la ventana pricipal la memoria RAM ocupada se reduce a 1 Mg aproximadamete.
al restaurar su memoria se mantiene en 5 Mg.

es el mismo SO, quien hace esta tarea.

el no quiere que sus usuarios minimizen manualmete las ventanas.

IE tambien funciona así, solo que tenemos que minimizar todas las ventanas para lograr este efecto.
  #16 (permalink)  
Antiguo 28/10/2006, 15:49
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
aun asi realemnte no creo que con eso oueda consegir lo que el quiere, tal vez lo mejor sea cambiar de navegador. jaja.

aproposito, ¿si la funcion SetProcess...(); trabaja como mencionan, su efecto seria nullo, si elimino el uso de memoria virtual?
  #17 (permalink)  
Antiguo 28/10/2006, 15:50
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Cita:
Iniciado por Nivel7 Ver Mensaje
La cuestion no es si estoy o no equivocado ...
en el primer mensaje pense que solo era una ventana y su proposito era liberar
Efectivamente pero no se libera nada ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #18 (permalink)  
Antiguo 29/10/2006, 03:37
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por Nivel7 Ver Mensaje
La cuestion no es si estoy o no equivocado, lo que menciono es que Windows hace esta tarea por defecto con la mayoria(si no es que todas) de las aplicaciones.
Sólo con las que usan explícitamente MINIMIZE, es decir, pocas. Deberías usar CloseWindow(), que usa SHOWMINIMIZE como has dicho tú mismo. A casi ningún programa, ni al sistema operativo en su conjunto, le interesa que su memoria se vaya al disco duro cada dos por tres.

Cita:
Iniciado por Nivel7 Ver Mensaje
en el primer mensaje pense que solo era una ventana y su proposito era liberar, pense que usar directamente SetProces...(), era lo mejor,
sin embargo el quiere hacer mas presentable una aplicacion Web de varias ventanas.
el qiere minimizar las ventanas no utilizadas, y lo sugiera o nó, nivel7 el SO, despejara la RAM al minimizar las ventanas

esto no es problema.

ejemplo:

ejecuto Exel, abro 100 documentos, me consumen un aproximado de 20 Mg, al minimizar la ventana pricipal la memoria RAM ocupada se reduce a 1 Mg aproximadamete.
al restaurar su memoria se mantiene en 5 Mg.
Bien, aún así tal copia de 19 MB es muy costosa. Más luego los 19-5 = 14 MB que quedan en el limbo del fichero de intercambio y que cuando vayas editando cada uno de los ficheros abiertos, Excel va a acceder a memoria virtual que no existe en RAM, el S.O. va a elevar un page fault y va a tener que obligar al disco a moverse hasta el fichero de intercambio y copiar la memoria de nuevo. Esto, repetido muchas veces (máximo hasta tantos archivos como hayas abierto) cuesta mucho.

Y si ya hablamos de los ~80 MB que dice el creador del topic, ni te cuento.

Mira, el fichero de intercambio sólo debería usarse cuando quede vaya quedando poca memoria libre en el sistema (para dejar espacio a aplicaciones más activas y dejar un margen de reacción) y cuando un proceso lleve mucho tiempo descansando (porque es inútil tener ocupando memoria si no está haciendo nada).

Cita:
Iniciado por Nivel7 Ver Mensaje
es el mismo SO, quien hace esta tarea.
Evidente que el S.O. es el que se dedica al manejo de memoria... Las aplicaciones no van por ahí moviendo su memoria virtual por la RAM física. ><

Cita:
Iniciado por Nivel7 Ver Mensaje
el no quiere que sus usuarios minimizen manualmete las ventanas.

IE tambien funciona así, solo que tenemos que minimizar todas las ventanas para lograr este efecto.
Según él le funciona sin tener que minimizar todas.

Última edición por MaxExtreme; 29/10/2006 a las 03:42
  #19 (permalink)  
Antiguo 29/10/2006, 03:47
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por Nivel7 Ver Mensaje
aproposito, ¿si la funcion SetProcess...(); trabaja como mencionan, su efecto seria nullo, si elimino el uso de memoria virtual?
¿? ¿Eliminar el uso de memoria virtual? Todo programa tiene que tener memoria virtual...

Creo que no tienes claros los conceptos: Una cosa es la memoria que tú pides con malloc y amigos, y otra la virtual. Un programa, aunque no pida nada de memoria adicional, siempre tendrá código, pila, etc.
  #20 (permalink)  
Antiguo 29/10/2006, 05:33
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
En todos los S.O. modernos TODA la memoria es virtual, todas las direcciones que usamos son virtuales (si, las del Kernel tambien) y son traducidas directamente por el microprocesador (con ayuda de unas tablas que maneja el S.O.).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #21 (permalink)  
Antiguo 30/10/2006, 01:54
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
Si lo se, en realidad era una pregunta y use un mal consepto.
En realidad me refería a eliminar el uso de archivo de paginacion, que segun Opciones de rendimiento/Opciones avanzadas. Se puede eliminar.

ya que la Funcion en cuestion(SetPro...), hace uso de esto para despejar la RAM; o segun entiendo liberar espacio de trabajo.


por cierto MaxExtreme: ¿Que es una variable?...


Saludos.
  #22 (permalink)  
Antiguo 30/10/2006, 09:48
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 7 meses
Puntos: 17
Cita:
Iniciado por Nivel7 Ver Mensaje
Si lo se, en realidad era una pregunta y use un mal consepto.
En realidad me refería a eliminar el uso de archivo de paginacion, que segun Opciones de rendimiento/Opciones avanzadas. Se puede eliminar.

ya que la Funcion en cuestion(SetPro...), hace uso de esto para despejar la RAM; o segun entiendo liberar espacio de trabajo.
A ver:

1. Puedes no tener archivo de intercambio, aunque simplemente no es recomendable.

2. La función lo que hace es pasar la memoria que usa un proceso al disco duro. Después, cuando vuelves a usar la memoria, el sistema la vuelve a poner en la RAM. Pero NO liberas ni despejas nada, sólo lo guardas en un cajón, que normalmente tampoco es recomendable, puesto que el meterlo en el cajón y volver a sacarlo conlleva un gran gasto de tiempo (mucho en la escala de un kernel, que todo debe hacerse a toda velocidad para que parezca que funciona todo a la vez).

Cita:
Iniciado por Nivel7 Ver Mensaje
por cierto MaxExtreme: ¿Que es una variable?...
Si te refieres a dónde se almacena, eso es fácil. Básicamente, si es una constante numérica, puede que esté incluida en el propio código. Si es una variable real, en la pila. Si es memoria que ha sido pedida al sistema, el puntero estará en la pila, y la memoria apuntada en algún otro lugar que decida el sistema operativo.

Y todo esto, a su vez, está en la memoria virtual donde le de la gana al sistema operativo. Y dicha memoria puede estar en la RAM, en el fichero de intercambio, o donde le de la gana al sistema opeartivo.
  #23 (permalink)  
Antiguo 30/10/2006, 10:21
Avatar de UltraLogico  
Fecha de Ingreso: enero-2005
Mensajes: 21
Antigüedad: 19 años, 10 meses
Puntos: 0
uuu!

que manera de escribir cosas!

ya me voy a poner a leerlas detenidamente porque justo ahora no tengo tiempo y como este no es mucho mi campo no entiendo nada...

lo que si veo en lo que escribieron es que no se libera nada de memoria minizando... entonces en vez de complicar la cosa con un activex sigo mandando las ventanas fuera del area visible y listo...
pero es raro eso que muestra el administrador de tareas... ¿alguno hizo la misma prueba que nosotros?
__________________
http://www.logindesarrollos.com
  #24 (permalink)  
Antiguo 30/10/2006, 17:46
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 7 meses
Puntos: 2
claro..OK.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:08.