- Katılım
- 22 Ara 2011
- Konular
- 49
- Mesajlar
- 245
- Online süresi
- 6g 54289s
- Reaksiyon Skoru
- 186
- Altın Konu
- 2
- Başarım Puanı
- 138
- TM Yaşı
- 14 Yıl 4 Ay 2 Gün
- MmoLira
- 138
- DevLira
- 6
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Merhaba Turkmmo ailesi,
Bugün size bugüne kadar forumda derinlemesine işlenmemiş, ancak büyük projelerin (1000+ Online) olmazsa olmazı bir konuyu anlatacağım: Memory Leak (Bellek Sızıntısı) Tespiti.
Birçok server sahibi "Sunucumda neden lag var?" veya "3 gün sonra RAM doluyor, reboot atmam gerekiyor" diyor. İşte bunun en büyük sebebi, eklediğiniz sistemlerdeki düzgün kapatılmamış
🛠 1. Adım: Valgrind Kurulumu
Sunucunuza (Putty üzerinden) aşağıdaki işletim sisteminize uygun komutu yazın:
FreeBSD Kullanıyorsanız:
Ubuntu veya Debian Kullanıyorsanız:
2. Adım: Game Core Analizini Başlatma
Normalde oyununuzu
3. Pointer Karşılaştırma Tablosu (Doğru Kullanım)
Sızıntı yapmamak için C++ yazarken alışkanlıklarımızı modern yöntemlere taşımalıyız:
4. Raporu İnceleme (leak_rapor.txt)
Komutu çalıştırdıktan bir süre sonra (oyuna girip biraz gezdikten sonra) dizinde oluşan leak_rapor.txt dosyasını WinSCP ile bilgisayarınıza çekin. İçinde şu tarz bir hata görürseniz sızıntıyı buldunuz demektir:
Bu rapor bize ne diyor?
Sonuç ve Öneriler
Bugün size bugüne kadar forumda derinlemesine işlenmemiş, ancak büyük projelerin (1000+ Online) olmazsa olmazı bir konuyu anlatacağım: Memory Leak (Bellek Sızıntısı) Tespiti.
Birçok server sahibi "Sunucumda neden lag var?" veya "3 gün sonra RAM doluyor, reboot atmam gerekiyor" diyor. İşte bunun en büyük sebebi, eklediğiniz sistemlerdeki düzgün kapatılmamış
new ve malloc komutlarıdır. Bu rehberle bu sızıntıları "nokta atışı" bulacağız.🛠 1. Adım: Valgrind Kurulumu
Sunucunuza (Putty üzerinden) aşağıdaki işletim sisteminize uygun komutu yazın:
FreeBSD Kullanıyorsanız:
Kod:
pkg install -y valgrind
Kod:
sudo apt-get update && sudo apt-get install valgrind -y
Normalde oyununuzu
./sh start.sh veya ./game diyerek başlatıyorsunuz. Sızıntıları yakalamak için oyunu Valgrind üzerinden çalıştırmalıyız. Game dosyanızın olduğu dizine girin ve şu komutu verin:
Kod:
valgrind --leak-check=full --show-leak-kinds=all --log-file=leak_rapor.txt ./game
NOT: Valgrind, bellek hareketlerini anlık izlediği için oyun bu modda biraz yavaş çalışabilir. Bu sadece test içindir, sızıntıları bulup düzelttikten sonra oyunu normal şekilde başlatabilirsiniz.
Sızıntı yapmamak için C++ yazarken alışkanlıklarımızı modern yöntemlere taşımalıyız:
| Özellik | Klasik Pointer (Raw) | Modern Pointer (Smart) |
|---|---|---|
| Yazım Şekli | CHARACTER* ch = new CHARACTER; | auto ch = std::make_unique<CHARACTER>(); |
| Silme İşlemi | Manuel delete ch; gerekir. | Otomatik silinir. |
| Sızıntı Riski |
Komutu çalıştırdıktan bir süre sonra (oyuna girip biraz gezdikten sonra) dizinde oluşan leak_rapor.txt dosyasını WinSCP ile bilgisayarınıza çekin. İçinde şu tarz bir hata görürseniz sızıntıyı buldunuz demektir:
Kod:
40 bytes in 1 blocks are definitely lost
at 0x4C29F73: malloc (vgpreload_memcheck.so)
by 0x401087: CreateNewItem (item_manager.cpp:150)
[]definitely lost: Kesin bir bellek sızıntısı var.
[]item_manager.cpp:150: 150. satırda bir bellek açılmış ama asla kapatılmamış (silinmemiş).
[]Her yeni sistem eklediğinizde mutlaka 10-15 dakika Valgrind ile test yapın.
[]Eski tipnewkullanıyorsanız, mutlakadestructoriçerisindedeleteişlemini yapın.- Sunucunuzun 1 hafta boyunca "reboot" istemeden stabil kalmasını istiyorsanız bu optimizasyon şarttır.
En Çok Reaksiyon Alan Mesajlar
Client source tarafıda gelir mi acaba?
- Katılım
- 1 Tem 2019
- Konular
- 1,953
- Mesajlar
- 5,201
- Online süresi
- 1ay 8g
- Reaksiyon Skoru
- 3,987
- Altın Konu
- 140
- Başarım Puanı
- 339
- TM Yaşı
- 6 Yıl 9 Ay 23 Gün
- MmoLira
- 39,465
- DevLira
- 150
UYGUN KATEGORİYE TAŞINMIŞTIR İYİ FORUMLAR DİLERİM.
- Katılım
- 30 Eyl 2022
- Konular
- 2
- Mesajlar
- 33
- Online süresi
- 1g 22407s
- Reaksiyon Skoru
- 18
- Altın Konu
- 0
- Başarım Puanı
- 37
- TM Yaşı
- 3 Yıl 6 Ay 21 Gün
- MmoLira
- 235
- DevLira
- 0
Eline sağlik bro iyi formlar hg
- Katılım
- 26 Mar 2026
- Konular
- 0
- Mesajlar
- 32
- Online süresi
- 2448s
- Reaksiyon Skoru
- 0
- Altın Konu
- 0
- Başarım Puanı
- 6
- TM Yaşı
- 23 Gün
- MmoLira
- 15
- DevLira
- 0
Eline saglk saol
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)
Benzer konular
- Cevaplar
- 9
- Görüntüleme
- 974
- Cevaplar
- 10
- Görüntüleme
- 2K