Vazamento de memória

Em ciência da computação vazamento de memória ou memory leak é um fenômeno que ocorre quando um programa de computador gerencia incorretamente alocações de memória de maneira que certa memória não é liberada quando não é mais necessária. Um vazamento de memória também pode acontecer quando um objeto é armazenado na memória mas não pode mais ser acessado pelo código em execução.[1] Um vazamento de memória tem sintomas similares a diversos outros problemas, portanto o diagnóstico usualmente requer que o desenvolvedor tenha acesso ao código-fonte do programa.

A ocorrência de vazamentos de memória é quase sempre relacionada a erros de programação e pode levar a falhas no sistema se a memória for completamente consumida.

Como os vazamentos de memória podem exaurir a memória do sistema conforme a aplicação roda, eles são um frequente fator contribuinte para o envelhecimento de software.

Efeitos

Se um programa tem vazamento de memória e seu uso aumenta de maneira estável, geralmente não haverá um sintoma imediato. Como todo sistema físico tem uma quantia finita de memória, e se o vazamento de memória não for contido (por exemplo, ao reiniciar o programa), isso irá eventualmente causar problemas.

Quando toda a memória de um sistema for exaurida (seja ela memória virtual ou apenas memória principal, como num sistema embarcado), qualquer tentativa de alocação de memória irá falhar. Isso usualmente faz o programa que tenta alocar memória terminar ou gerar uma falha de segmentação. Alguns programas são projetados para se recuperar dessa situação (possivelmente por usar memória pré-reservada como fallback).

Alguns sistemas operacionais multitarefa tem mecanismos especiais para lidar com falta de memória, como matar processos aleatoriamente (o que pode afetar processos "inocentes"), ou matar o maior processo na memória (que presumivelmente está causando o problema). Alguns sistemas operacionais tem um limite de memória por processo, para impedir qualquer

Se o vazamento de memória for no kernel, o sistema operacional provavelmente irá falhar. Computadores sem gerenciamento de memória sofisticado, como sistemas embarcados, poderá falhar completamente com um vazamento persistente de memória.

Sistemas publicamente acessíveis, como servidores web ou roteadores são suscetíveis a ataques de negação de serviço se um invasor descobrir uma sequência de operações que pode ativar um vazamento. Tal sequência é um exemplo de exploit.

O padrão "dente de serra" de utilização de memória: a queda repentina no uso de memória é uma candidata a sintoma de vazamento de memória.

Um padrão de utilização de memória "sawtooth" pode ser um indicador de um vazamento de memória dentro de uma aplicação, particularmente se uma queda vertical coincide com reinicialização do sistema ou reinicio da aplicação. Deve haver cuidado, no entanto, porque o ponto de coleta de lixo do garbage collector também podem causar tal padrão e mostraria um uso saudável da pilha.

Exemplo

O exemplo abaixo, escrito na linguagem de programação C, mostra um programa de computador que possui um vazamento de memória. Após algum tempo de execução este programa irá consumir toda a memória disponível e irá falhar.

#include <stdio.h>
#include <stdlib.h>

void f(void){
    void* s;
    s = malloc(50); /* obtém a memória */
    return;  /* memory leak - ver nota abaixo */ 

    /* 
     * A [[Memória (computador)|memória]] é obtida e disponibilizada em s.
     * Após o retorno da [[subrotina|função]], o [[Ponteiro (programação)|ponteiro]] é destruído e
     * perde-se a referência a esta porção de memória.
     * 
     * Este código pode ser consertado se a função f() incluir
     * a operação "free(s)" antes do retorno ou se o código
     * que chama f() fizer a chamada para a operação free().
     */
}

int main(void){
    /* Este ''loop'' infinito chama a função f(), definida acima */
    while (1) f(); /* Cedo ou tarde a chamada à função irá falhar, devido a um
                      erro de alocação na função malloc, quando a memória terminar.*/
    return 0;
}

Outro exemplo de vazamento de memória, só que agora utilizando a linguagem de programação C++, dependendo do computador e da quantidade de memória, o programa usará 100% da memória em milésimos

int main()
{
    while(true)
    {
        int * vetor = new int[100000]; // Em cada loop será consumido 400000 bytes(100000 * sizeof(int)) de memória ram.
        
        /* ... */
        
        // Para resolver o problema basta colocar um "delete vetor;" no final do loop.
    }
    return 0;
}

Referências

  1. «Creating a memory leak with Java». Stack Overflow. Consultado em 30 de março de 2019 

Read other articles:

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. Artikel ini merupakan bagian dariseri mengenai:Komunisme KonsepFilosofi Marxis Ekonomi Marxian Materialisme historis Nilai lebih Mode produksi Perjuangan kelas Masyarakat Tanpa Kelas Internasionalisme proletariat Revolusi Dunia Aspek Negara komunis Pa...

 

This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (April 2021) (Learn how and when to remove this template message) Town hall in Tamilnadu, IndiaTown Hall, CoimbatoreCoimbatore Town Hall in 2008Alternative namesVictoria Town HallGeneral informationTypeTown hallArchitectural styleNeoclassical architectureLocationTownhallCoimbatoreTamilnaduIndiaAddressBazaar Stree...

 

CuraçaoUseCivil and state flag, state ensignProportion2:3Adopted2 July 1984; 39 years ago (1984-07-02)DesignA blue field with a horizontal yellow stripe slightly below the midline and two white five-pointed stars in the canton. UseGovernor's standardsDesignA white field with along the top and bottom three horizontal stripes red, white, and blue. Blue disk in the center with two white five-pointed stars and a yellow stripe. Stamp commemorating the national flag The national ...

Provincia di Lodi Negara  Italia Wilayah / Region Lombardia Ibu kota Lodi Area 782 km2 Population 2008 222,223 Kepadatan 284 inhab./km2 Comuni 61 Nomor kendaraan LO Kode pos 26900 Kode area telepon 0371 ISTAT 098 Presiden Pietro Foroni Executive Lega Nord Peta yang menunjukan lokasi provinsi Lodi di Italia Lodi (bahasa Italia: Provincia di Lodi) adalah sebuah provinsi di regione Lombardia di Italia. Ibu kotanya berada di kota Lodi. Luasnya adalah 782 km², dan populasinya sebes...

 

Halaman ini berisi artikel tentang aktor kontemporer Inggris. Untuk kegunaan lain, lihat Charles Dance (disambiguasi). Charles DanceOBEDance at the London Film and Comic Con, July 2012LahirWalter Charles Dance10 Oktober 1946 (umur 77)Redditch, Worcestershire, Inggris, Britania RayaKebangsaanBritania RayaPendidikanDe Montfort University Plymouth College of ArtPekerjaanAktor, penulis naskah, sutradara filmTahun aktif1974–sekarangSuami/istriJoanna Haythorn ​ ​(m.&...

 

Sebuah tim reli Norwegia mencoba untuk menyelesaikan salah satu tahapan yang lebih sulit dari reli Budapest-Bamako pada tahun 2014. Balap Gurun 1000 km Kalahari 2017 Rally raid, juga dikenal sebagai reli lintas negara, adalah bentuk jarak jauh balap off-road yang berlangsung selama beberapa hari. Durasi acara bisa sesingkat 2-3 hari untuk baja lintas negara hingga 15 hari dengan reli maraton seperti Reli Dakar; dengan acara reli lintas negara lainnya yang berlangsung 4-5 hari. Dengan keteramp...

Pasar valuta asing atau juga disingkat valas (bahasa Inggris: foreign exchange market, forex) adalah suatu jenis perdagangan atau transaksi yang memperdagangkan mata uang suatu negara terhadap mata uang negara lainnya (pasangan mata uang/currency pair) yang melibatkan pasar-pasar uang utama di dunia selama 24 jam secara berkesinambungan. Pergerakan pasar valuta asing berputar mulai dari pasar Selandia Baru dan Australia yang berlangsung pukul 05.00–14.00 WIB, lalu berlanjut ke pasar Asia ya...

 

Perang Tiongkok-Jepang KeduaMandarin: 中國抗日戰爭Jepang: 日中戦争Bagian dari Perang Dunia IIPeta kekuasaan Jepang tahun 1940.Tanggal7 Juli 1937 – 9 September 1945 (perseteruan kecil dimulai sejak 18 September 1931)LokasiTiongkokHasil Tiongkok menang;Jepang mendapat kemenangan sementara dan menduduki sebagian wilayah China dari tahun 1931 (perseturuan kecil) - 1945 sebelum akhirnya menyerah tanpa syarat kepada Sekutu.Perubahanwilayah Pengembalian Manchuria, Taiwan, dan Kepulauan P...

 

  قوات الدرك (تركيا) قوات الدرك (تركيا)‌   البلد تركيا  المقر الرئيسي أنقرة  تاريخ التأسيس 1839  المنظمة الأم وزارة الداخلية  عدد الموظفين 180000 (2009)  الموقع الرسمي الموقع الرسمي  تعديل مصدري - تعديل     لمعانٍ أخرى، طالع قوات الدرك (توضيح). القوات الدرك ...

Ford MondeoDescrizione generaleCostruttore  Ford Tipo principaleBerlina Altre versioniStation wagon Produzionedal 1993 Sostituisce laFord Sierra SeriePrima (1993-2000)Seconda (2000-2007)Terza (2007-2014)Quarta (2014-2022)Quinta (2022-) Altre caratteristicheAltre antenateFord Taunus e Ford Cortina Della stessa famigliaFord CougarFord Fusion (America) La Ford Mondeo è un modello di autovettura appartenente al segmento D prodotta dalla casa automobilistica statunitense Ford dal 1993 e giun...

 

Национальное аэрокосмическое агентство Азербайджана Штаб-квартира Баку, ул. С. Ахундова, AZ 1115 Локация  Азербайджан Тип организации Космическое агентство Руководители Директор: Натиг Джавадов Первый заместитель генерального директора Тофик Сулейманов Основание Осн�...

 

† Большая гавайская древесница Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:За...

Komite Penanganan Corona Virus Disease 2019 dan Pemulihan Ekonomi NasionalInformasi lembagaDibentuk20 Juli 2020 (2020-07-20)Nomenklatur lembaga sebelumnyaGugus Tugas Percepatan Penanganan COVID-19beserta 18 lembaga lainnya yang dibubarkan[1]Dibubarkan05 Agustus 2023 (2023-08-05)Wilayah hukumPemerintah IndonesiaKantor pusatKantor Sekretariat Presiden, Istana Negara, Jakarta, Indonesia6°10′06″S 106°49′28″E / 6.1683°S 106.8244°E / -6.1683; 10...

 

Knights of Columbus BuildingKnights of Columbus Building, New Haven, CT.Informasi umumJenisKantorLokasiOne Columbus Plaza New Haven, Connecticut 06510-2100Amerika SerikatKoordinat41°18′09″N 72°55′39″W / 41.3026°N 72.9274°W / 41.3026; -72.9274Koordinat: 41°18′09″N 72°55′39″W / 41.3026°N 72.9274°W / 41.3026; -72.9274Rampung1969TinggiAtap321 ft (98 m)Data teknisJumlah lantai23Desain dan konstruksiArsitekKevin Roche...

 

Israeli television channel This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Yes Action – news · newspapers · books · scholar · JSTOR (December 2009) (Learn how and when to remove this message) Television channel yes Actionyes Action intertitleCountryIsraelProgrammingPicture format576i (SDTV 16:9, 4:3)1080i (HDTV)OwnershipOwner...

Stasiun Inakita伊那北駅Stasiun Inakita pada Maret 2008Lokasi1930 Yamadera, Ina-shi, Nagano-ken 396-0023JepangKoordinat35°50′44″N 137°57′51″E / 35.8456°N 137.9642°E / 35.8456; 137.9642Ketinggian643 meter[1]Operator JR CentralJalur Jalur IidaLetak178.9 km dari ToyohashiJumlah peron1 peron samping + 1 peron pulauInformasi lainStatusTanpa stafSejarahDibuka4 Januari 1912PenumpangFY20151.112 per hari Lokasi pada petaStasiun InakitaLokasi di Nagano Pre...

 

Ratto delle SabineAutoreNicolas Poussin Data1634-1635 Tecnicaolio su tela Dimensioni154×206 cm UbicazioneMetropolitan Museum of Art, New York Ratto delle SabineAutoreNicolas Poussin Data1637-1638 Tecnicaolio su tela Dimensioni159×206 cm UbicazioneMuseo del Louvre, Parigi La denominazione Ratto delle Sabine si riferisce a due dipinti realizzati da Nicolas Poussin, aventi come soggetto un episodio tratto dalle Vite Parallele di Plutarco: nello specifico, si tratta del momento in cui...

 

Art school in Hartford, Vermont 43°38′41″N 72°19′06″W / 43.64467°N 72.318402°W / 43.64467; -72.318402 Center for Cartoon StudiesTypeTwo-Year UnaccreditedEstablished2004; 20 years ago (2004)Budget$1.1 million (2020)[1]PresidentMichelle OllieDirectorJames SturmAcademic staff9Students48LocationHartford, Vermont, United StatesCampusUrbanAffiliationsVermont Higher Education CouncilWebsitewww.CartoonStudies.org The Center for Cartoon Stu...

1978 single by Bee Gees Not to be confused with Too Much of Heaven. Too Much HeavenDutch vinyl singleSingle by Bee Geesfrom the album Spirits Having Flown B-sideRest Your Love on MeReleased24 October 1978 [1]RecordedJuly 1978StudioCriteria (Miami)Genre Soul[2] R&B Length4:58LabelRSOSongwriter(s)Barry GibbRobin GibbMaurice GibbProducer(s)Bee GeesAlbhy GalutenKarl RichardsonBee Gees singles chronology Night Fever (1978) Too Much Heaven (1978) Tragedy (1979) Music videoToo Mu...

 

Den här artikeln behöver källhänvisningar för att kunna verifieras. (2024-02) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. JavneStad, tell, city council Tillkomst1949 LandIsrael Huvudstad iIbelin Inom det admi­nis­tra­ti­va området• Centrala distriktet • Rehovot sub-district TidszonIsrae...