Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Zobrazené výsledky: 1 až 8 z 8

Téma: Alokovani velke pameti

  1. #1
    Obyvatel SMob
    Registrace
    Jul 2004
    Příspěvků
    420

    Chtel bych se zeptat, jak resi Windows Mobile 2003 alokaci vice pameti, nez ma system k dispozici? Maji nejaky swapak? Nebo jakym zpusobem resit tu situaci, kdyz chci operovat s pameti radove ve stovkach mega?
    Odpovídat lze po přihlášení

  2. #2
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    Nema swap, jakozto real-time OS.

    Resi se to postupnym nacitanim a zahazovani toho, co uz nepotrebuji. Pripadne si ten swapak udelam sam...
    Odpovídat lze po přihlášení



  3. #3
    Obyvatel SMob
    Registrace
    Jul 2004
    Příspěvků
    420

    a neni to prilis nebespecne pro napriklad SD karty? neustale cteni a zapisovani, prece jen maji urcitou zivotnost...
    Odpovídat lze po přihlášení

  4. #4
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    Je, vzdyt od toho v Dynavixu upustili...
    Odpovídat lze po přihlášení

  5. #5
    Obyvatel SMob
    Registrace
    Jul 2004
    Příspěvků
    420

    nerozumim...

    takze, jake je reseni?
    Odpovídat lze po přihlášení

  6. #6
    Nováček
    Registrace
    Jul 2005
    Příspěvků
    37

    No reseni jsou Memory mapovane soubory.
    Jinak limitace 32MB per process se da resit treba takto (takzvany Mamaich's trik)

    Kód:
    static void *myalloc(int size)
    {
        if(size<128*1024)
        {
        void *Ptr=malloc(size+4);
        *((HANDLE*)Ptr)=0;
        return 4+(char*)Ptr;
        }
    HANDLE H=CreateFileMapping((HANDLE)INVALID_HANDLE_VALUE, 0,PAGE_READWRITE,
    0,size+4, 0);
    void *Ptr=MapViewOfFile(H,FILE_MAP_ALL_ACCESS, 0,0, size+4);
    *((HANDLE*)Ptr)=H;
    return 4+(char*)Ptr;
    }
    
    static void myfree(void* addr)
    {
    HANDLE H=*(HANDLE*)((char*)addr-4);
    if(H==0)
    {
    free((char*)addr-4);
    return;
    }
    UnmapViewOfFile((char*)addr-4);
    CloseHandle(H);
    }
    Odpovídat lze po přihlášení

  7. #7
    Obyvatel SMob
    Registrace
    Jul 2004
    Příspěvků
    420

    super, dik
    Odpovídat lze po přihlášení



  8. #8
    Nováček
    Registrace
    Jul 2005
    Příspěvků
    37

    Ale pozor ten trik ti pomuze pouze alokovat maximum ale pouze z dostupne volne pameti. Swap CEcka opravdu nemaji. I kdyz memory mapovany soubory swapak dokazi dobre nasimulovat. Tam potom je potreba v tom CreateFileMapping predat handle nejakeho souboru. Ale nevim jestli to opravdu dobre funguje, protoze jsem to sam nezkousel. A je taky mozny ze to opravdu dokaze SD kartu "rychle" oddelat.
    Odpovídat lze po přihlášení

Podobná témata

  1. Tisk velke mapy
    Od Brunoos_ce4you v sekci OziExplorerCE
    Reakcí: 3
    Poslední příspěvek: 04-01-2013, 18:22
  2. Velke sekani na mem hx4700.
    Od Dvora21 v sekci Zbývající zařízení HP a Compaq
    Reakcí: 2
    Poslední příspěvek: 31-12-2007, 11:55
  3. WM2003SE a velké soubory (od SMS?)
    Od Petr_J v sekci Windows Mobile a Windows CE
    Reakcí: 8
    Poslední příspěvek: 11-08-2005, 16:45