Freepascal ja Lazarus

Dyna A Mikko

Lazarusta tekisi mieli joskus kokeilla. Sanokaapa te jo kokeilleet, onko siinä muistiroskien keräystä?

Englanniksi termi on garbage collection:
http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)

Jos ei ole, saako jotenkin? C-kieleenkin saa. (Boehm: http://www.hpl.hp.com/personal/Hans_Boehm/gc/ )

8

307

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • garpage

      ..kokeile vaan, kaikissa kielissä saa muistivuotoja aikaan ellei varaukset ja vapautukset ole hanskassa, omia tuotoksia on testattu siten että ohjelma pyörii kuukauden ilman sammutteluja, jos muistivuotoja olisi niin luulisi niiden jo ilmenneen, koska tuo alkaa jo olla wintoosan maksimi pystyssäolo aikoja, muisti vuotojen toteamiseen on myös olemassa erillisiä ohjelmia google "memory leak"

      • Automaattinen on automaattinen

        "kaikissa kielissä saa muistivuotoja aikaan ellei varaukset ja vapautukset ole hanskassa"

        Ei, et ymmärrä mitä kysyn. Automaattinen roskien keruu tarkoittaa sitä, että itse ei tarvitse käsin varata ja vapauttaa muistia omassa koodissaan. Silloin ei tule muistivuotoja, ellei aivan tarkoituksella sellaista tee. Tämä tekniikka kehitettiin jo 1950-luvulla.

        Yritän uudelleen: pakottaako Lazarus minut hoitamaan muistinhallinnan aina itse, vai voinko _tarpeen mukaan_ käyttää siihen automaattisia menetelmiä? Minkälaisia keinoja se tarjoaa muistinhallintaan, jotta voin keskittyä oleellisempien ongelmien ratkomiseen tehdessäni ohjelmiani?

        Google-haku ei antanut mitään tietoa, vaikka lisäsin siihen Lazarus-sanan. Jo ensimmäisellä sivulla oli C-kieleen liittyvä osuma.


      • jöjöjö

        voisitko antaa esimerkin Java-ohjelmasta, jossa on muistivuoto?


      • a&a
        Automaattinen on automaattinen kirjoitti:

        "kaikissa kielissä saa muistivuotoja aikaan ellei varaukset ja vapautukset ole hanskassa"

        Ei, et ymmärrä mitä kysyn. Automaattinen roskien keruu tarkoittaa sitä, että itse ei tarvitse käsin varata ja vapauttaa muistia omassa koodissaan. Silloin ei tule muistivuotoja, ellei aivan tarkoituksella sellaista tee. Tämä tekniikka kehitettiin jo 1950-luvulla.

        Yritän uudelleen: pakottaako Lazarus minut hoitamaan muistinhallinnan aina itse, vai voinko _tarpeen mukaan_ käyttää siihen automaattisia menetelmiä? Minkälaisia keinoja se tarjoaa muistinhallintaan, jotta voin keskittyä oleellisempien ongelmien ratkomiseen tehdessäni ohjelmiani?

        Google-haku ei antanut mitään tietoa, vaikka lisäsin siihen Lazarus-sanan. Jo ensimmäisellä sivulla oli C-kieleen liittyvä osuma.

        Kaikki riippuu vähän millaisia menetelmiä käytät. On tyypillistä että pascalissa joutuu käyttämään vähemmän pointtereita kuin esim. C:ssä.

        Google haussa kannattaa käyttää myös Lazaruksen tilalla Delphi tai Pascal hakusanaa.

        Kannatanee tehdä alkuun joku testiohjelma.


    • ......................

      Ei ole.

      Ohjelmoi kauniisti, älä rumasti. Älä odota että joku tulee siivoamaan paskasi vaan siivoa itse oma työtilasi.

      Ja tottakai GC:n saa koodattua periaatteessa mihin tahansa kieleen, Pascaliinkin. Eihän se vaadi muuta kuin objectpoolin ja referenssien hallinnan pakottamista ja sitten kaikkien omien luokkien pakottamista tähän GC frameworkkiin. Tosin tietenkin sitä pystyy edelleen ampumaan itseään jalkaan jos ei käytäkään sitä frameworkiä vaan sooloilee sen ulkopuolella osassa koodia.

      • On muuten...

        .... Jumala. Tai yksi kovasta nelikosta.

        Patternseista löytyy tapa toteuttaa se GC jos sitä kaipaa. Boehm oli yksi kirjoittaja.


      • Vastaus sulta

        "Ohjelmoi kauniisti, älä rumasti. Älä odota että joku tulee siivoamaan paskasi vaan siivoa itse oma työtilasi."

        Kyse ei ole siitä osaanko, vaan haluanko.

        "Ja tottakai GC:n saa koodattua periaatteessa mihin tahansa kieleen, Pascaliinkin."

        Joissakin se on valmiina. Ratkesi jo kieliongelma tässä näin.


    • xxxxx

      Ainakin basiceissa tuo roskien poisto on ollut dynaamisissa merkkijonoissa aina.

      Sivulla http://www.allapi.net/vbtutor/iapi5.shtml
      on kerrottu miten saadaan nähtyä muistin määrä. Tee lyhyt testiohjelma ja tulosta muistin määrä ennen toimintoa ja sen jälkeen.

      Luulen kuitenkin että muistin vapautus tapahtuu sovelluksen sisällä eli muistia ei vapauteta windowsille. Tosin koska Windows hoitaa muistinkäsittelyn niin se on varmaan siitä riippuvainen.

      Tämä nyt meni vähän ohi kysymyksesi eikä oikein vastannut mihinkään (:

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Onks sulle väliä, jos jokin kaivattusissa

      ei ole täydellistä? Esim. venytysmerkit, arvet, selluliitti, epäsymmetriset rinnat, vinot hampaat jne?
      Ikävä
      85
      4550
    2. Ei sinussa ollut miestä

      Selvittämään asioita vaan kipitit karkuun kuin pikkupoika.
      Ikävä
      127
      3958
    3. Shokkiyllätys! 31-vuotias Hai asuu vielä "kotona" - Anna-vaimon asenne ihmetyttää: "No ei tämä..."

      Hmmm, mitenhän sitä suhtautuisi, jos aviomies/aviovaimo asuisi edelleen lapsuudenperheensä kanssa? Tuore Ensitreffit-vai
      Ensitreffit alttarilla
      33
      2511
    4. Eikö Marin ollut oikeassa kokoomuksen ja persujen toiminnasta

      Ennen vaaleja Marin kertoi mitä kokoomus tulisi hallituksessa tekemään ja tietysti persut suostuu kaikkeen, mitä kokoomu
      Maailman menoa
      196
      1513
    5. Wiisaat Lappajärvellä iät.

      Nyt nimiä listaan menneistä ja nykyisistä Wiisaista Lappajärveläisistä. Itseäkin voi tuoda esille kaikessa Wiisaudessa.
      Lappajärvi
      12
      1286
    6. Missä Steffe hiihtää?

      Missä reppuli luuraa? Ei ole Seiskassa mitään sekoiluja ollut pariin viikkoon? Onko jo liian kylmä skulata tennistä ulko
      Kotimaiset julkkisjuorut
      22
      1243
    7. Olet elämäni rakkaus

      On ollut monia ihastumisia ja syviäkin tunteita eri naisia kohtaan, mutta sinä olet niistä kaikista ihmeellisin. Olet el
      Ikävä
      36
      1198
    8. Ratkaiseva tekijä kiinnostuksen heräämisessä

      Mikä tekee deittikumppanista kiinnostavan? Mitä piirrettä arvostat / et arvosta?
      Sinkut
      62
      1193
    9. Milloin nainen, milloin?

      Katselet ja tiedän, että myös mieli tekee. Voisit laittaa rohkeasti viestin. Tiedät, että odotan. Ehkä aika ei ole vielä
      Ikävä
      61
      1153
    10. Olen menettänyt yöunet kokonaan

      Nytkin vain tunnin nukkunut. En tiedä johtuuko se sinusta vai tästä palstasta. Olis mukava nähdä oikeasti eikä arvuutel
      Tunteet
      17
      1055
    Aihe