İlan
04 Haz 2026 33 çevrimiçi üye Duyurular
Ana Sayfa C++ / C# / Python
Ana Sayfa Forum C++ / C# / Python [REHBER] Oyun Source'u Tehlikeyle Karşılaştın...
İlan Yan banner placeholder

[REHBER] Oyun Source'u Tehlikeyle Karşılaştınız mı? Memory Leak ve Optimizasyon Rehberi

cakabey 22.04.2026 19:05 949 görüntüleme 5 cevap
Son Mesaj
cakabey
Üye
Üye
Katılım21 Mar 2026
Konular9
Mesajlar67
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
22.04.2026 19:05 #1
Merhaba MMOZirve 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ış 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
Ubuntu veya Debian Kullanıyorsanız:
Kod:
sudo apt-get update && sudo apt-get install valgrind -y
🚀 2. Adım: Game Core Analizini Başlatma
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.
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:
ÖzellikKlasik Pointer (Raw)Modern Pointer (Smart)
Yazım ŞekliCHARACTER* ch = new CHARACTER;auto ch = std::make_unique<CHARACTER>();
Silme İşlemiManuel delete ch; gerekir.Otomatik silinir.
Sızıntı Riski❌ Çok Yüksek✅ Sıfır
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:
Kod:
40 bytes in 1 blocks are definitely lost
at 0x4C29F73: malloc (vgpreload_memcheck.so)
by 0x401087: CreateNewItem (item_manager.cpp:150)
Bu rapor bize ne diyor?

  • []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ş).
✅ Sonuç ve Öneriler

  • []Her yeni sistem eklediğinizde mutlaka 10-15 dakika Valgrind ile test yapın.
    []Eski tip new kullanıyorsanız, mutlaka destructor içerisinde delete işlemini yapın.
  • Sunucunuzun 1 hafta boyunca "reboot" istemeden stabil kalmasını istiyorsanız bu optimizasyon şarttır.
Umarım bu konu server geliştiren arkadaşların ufkunu açar. Bir sorunuz olursa konu altından sorabilirsiniz, elimden geldiğince loglarınızı incelemenize yardımcı olurum.
cakabey
Üye
Üye
Katılım21 Mar 2026
Konular9
Mesajlar67
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
01.05.2026 05:07 #2
Client source tarafıda gelir mi acaba?
Michael_scofield
Üye
Üye
Katılım08 Ara 2025
Konular9
Mesajlar56
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
03.05.2026 20:15 #3
UYGUN KATEGORİYE TAŞINMIŞTIR İYİ FORUMLAR DİLERİM.
Omertrpll
Üye
Üye
Katılım03 Mar 2026
Konular12
Mesajlar69
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
04.05.2026 03:53 #4
Eline sağlik bro iyi formlar hg
AhmetE74
Üye
Üye
Katılım21 Nis 2026
Konular10
Mesajlar67
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
05.05.2026 13:03 #5
Eline saglk saol 👍
ELLAS
Üye
Üye
Katılım26 Ara 2025
Konular8
Mesajlar93
Elmas Konular0
Başarım0
ZirveCoin 0
Ticaret Puanı
+0 -0
07.05.2026 20:22 #6
Konu uygun kategoriye taşınmıştır.
Eline emeğine sağlık
Bu konuyu görüntüleyenler
1 misafir
Cevap yazmak için giriş yapın.
Benzer Konular
6 cevap
2K görüntüleme
9 cevap
1.9K görüntüleme
4 cevap
1.9K görüntüleme
8 cevap
1.9K görüntüleme
İlan Yan banner placeholder