Skip to content

Lightweight tool that analyzes memory alignment of structs written in Go and provides optimization.

License

Notifications You must be signed in to change notification settings

yigittopm/padding0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Memory Alignment Analiz Aracı

Bu araç, Go dilinde yazılmış yapıların (struct) bellek hizalamasını analiz etmek ve optimize etmek için geliştirilmiştir. Dosyalarınızı gezerek .go uzantılı dosyaları bulur ve içerisindeki struct yapılarını analiz edip değiştirir. Go'nun bellekteki verileri hizalama şekli, performans açısından kritik öneme sahiptir. Yanlış hizalanmış yapılar, daha fazla bellek tüketimine ve düşük performansa neden olabilir.

Bu repo, aşağıdaki özellikleri sunar:

  • CLI tabanlı kullanım ve kolay entegrasyon
  • Basit struct yapılarını analiz etme ve düzenleme
  • Karmaşık struct yapılarını analiz etme ve düzenleme
  • Gereksiz boşlukları (padding) ve bellek israfını tespit etme
  • Performans iyileştirmeleri için önerilerde bulunma
  • Analizleri raporlama

Kendi projelerinizde bellek optimizasyonu yapmanıza yardımcı olmak için geliştirilmiştir. Hem küçük projelerde hem de büyük çaplı sistemlerde faydalı olabilir.

Kurulum

    go install github.com/yigttopm/padding0@latest

Çalıştığınız Go projenizin kök dizinine gidin ve aşağıdaki komutu çalıştırın:

    padding0

ya da projenizin yolunu belirterek çalıştırabilirsiniz:

    padding0 -d="path/to/your/project"

Örnek

Projenizde kullandığınız örnek bir struct:

package main

// Total size with padding: 40 bytes
type A struct {
	A byte  // 1 byte
	B int64 // 8 byte
	C byte  // 1 byte
	D int64 // 8 byte
	E byte  // 1 byte
}

ve bu aracı çalıştırdıktan sonra:

package main

// Total size with padding: 24 bytes
type A struct {
	B int64 // 8 byte
	D int64 // 8 byte
	A byte  // 1 byte
	C byte  // 1 byte
	E byte  // 1 byte
}

About

Lightweight tool that analyzes memory alignment of structs written in Go and provides optimization.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published