Simülasyon yazılımınızı bir sistemde çalıştırdığınızda segmentasyon hataları alıyorsanız, başka bir sistemde çalıştırdığınızda büyük yavaşlama yapıyorsanız, simülasyon yazılımınız yeterli belleğe sahip olmamaya yönelik değildir. Herhangi bir segmentasyon hatası, bir hatanın göstergesidir ve genellikle segmentasyon hataları üreten hatalar, gerçekten kod davranışının tanımlanmadığı hatalardır . Farklı sistemlerde farklı (yanlış) şekillerde hareket edebilir.
Yani:
Siz veya birlikte çalıştığınız kişi simülasyon yazılımını yazdıysa, performansı iyileştirmek amacıyla hata ayıklamanız gerekir. Segmentasyon hatasının yığın izini oluşturmak için onu hata ayıklama sembolleriyle ( gcc -g ...
) derleyerek ve gdb
Slackware'de etkileşimli olarak (örneğin, içinde ) hata ayıklamayı başlatarak öneririm .
Bellek sızıntılarını bulmak için de hata ayıklamanız gerekir. Sen kullanabilirsiniz Valgrind , sızıntı tespit modunda çalışırken Boehm GC veya bu diğer çeşitli araçlar.
Tabii ki, hata ayıklamanın en uygun yolu nasıl çalıştığının detaylarına ve hangi dilde yazıldığına bağlı olacaktır.
Simülasyon yazılımını tamamen ayrı bir partiden aldıysanız, bir hata bildirmelisiniz. Hata ayıklama derlemesi veya hata ayıklama sembolleri sizin için mevcutsa, hata raporu, Slackware sistemine segmentasyon hatasının yığın izini dahil etmekten fayda sağlayacaktır.
Ubuntu'daki simülasyonu sonlandırmak için yapabileceğiniz bazı şeyler olabilir.
Tüm sistem durma noktasına gelmemelidir. Bu, muhtemelen çekirdekte bulunan Ubuntu'da bir hata olduğunu gösterir. Büyük disk G / Ç'leri bile Ubuntu'yu yalnızca ılımlı bir şekilde yavaşlatmalıdır. Ubuntu'nun çekirdeğinde bununla ilgili bir hata bildirmek isteyebilirsiniz.
Bunu yapmak istiyorsanız, önce bunu okuyun . Ardından hata raporlama işlemini çalıştırarak başlatırsınız ubuntu-bug linux
(ya da yalnızca komut satırı sistemse apport-cli linux
).
Bu soruna geçici bir çözüm bulmak için , içinde sınırları belirterek kullanılabilir belleği sınırlamayı deneyebilirsiniz limits.conf
. Ayrıca bu blog gönderisine bakın .
Problemin CPU önceliği ile ilgisi varsa, simülasyonu nice
(örneğin ) ile daha düşük bir öncelikte çalıştırabilir veya birlikte çalışırken daha düşük bir değerde çalıştırabilirsiniz .nice -n 15 command...
renice
Eğer hiç makineyi kullanabiliyorsa yavaşlarsa ve simülasyon (bazen durdurulması gerek olarak sanal konsol GUI daha iyi tepki), sizinle süreci öldürme deneyebilirsiniz sinyali bir süreç öldürmek için en güçlü yolu olan ( ):KILL
kill -KILL command
İşte command
sadece bir kelime, çalıştırılabilir isim. Bu isimdeki tüm çalıştırılabilirler öldürülecek (bu nedenle " killall
"). Eğer PID'niz varsa (dan ps
), bunun yerine elbette koşabilirsiniz .kill -KILL PID