Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Kami Boleh Mengoptimumkan Binaan GCC dan ld untuk Mengalih keluar Simbol yang Tidak Digunakan dan Mengurangkan Saiz Boleh Laksana?

Bagaimanakah Kami Boleh Mengoptimumkan Binaan GCC dan ld untuk Mengalih keluar Simbol yang Tidak Digunakan dan Mengurangkan Saiz Boleh Laksana?

Susan Sarandon
Lepaskan: 2024-12-17 09:33:25
asal
759 orang telah melayarinya

How Can We Optimize GCC and ld Builds to Remove Unused Symbols and Reduce Executable Size?

Pengalihan Keluar Simbol Tidak Digunakan yang Dioptimumkan dalam GCC dan ld Builds

Apabila membina boleh laku, terutamanya untuk sistem terbenam berasaskan ARM, mengoptimumkan saiz boleh laku ialah penting untuk meningkatkan prestasi. Satu isu yang ketara ialah kehadiran simbol yang tidak digunakan dalam binari, menyumbang kepada kembung perut yang tidak perlu.

Untuk mengurangkan masalah ini dalam persekitaran GCC dan ld, pendekatan dua peringkat digunakan:

Peringkat 1: Mengasingkan Bahagian Kod

Menggunakan pengkompil flags -fdata-sections dan -ffunction-sections mengarahkan pengkompil untuk membahagikan kod dalam setiap unit terjemahan kepada bahagian berbeza yang mewakili fungsi, kelas dan pembolehubah luaran. Ini membolehkan pengasingan simbol yang tidak digunakan.

Peringkat 2: Membuang Bahagian Tidak Dirujuk

Semasa fasa pemautan, memanggil pemaut dengan bendera pengoptimuman -Wl,--gc -sections mencetuskan pemaut untuk membuang bahagian yang kekurangan rujukan. Ini memastikan bahawa simbol yang tidak digunakan dikecualikan daripada boleh laku akhir.

Sebagai contoh, mempertimbangkan ujian fail.cpp dengan dua fungsi, satu daripadanya tidak digunakan, perintah berikut akan menghasilkan boleh laku yang menghilangkan fungsi yang tidak digunakan:

gcc -Os -fdata-sections -ffunction-sections test.cpp -o test -Wl,--gc-sections
Salin selepas log masuk

Dengan menggabungkan pendekatan dua peringkat ini, simbol yang tidak digunakan boleh dikeluarkan dengan berkesan, dengan ketara mengurangkan saiz boleh laku akhir, dengan itu meningkatkan prestasi pemuatan dalam sistem terbenam yang dikekang sumber.

Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Mengoptimumkan Binaan GCC dan ld untuk Mengalih keluar Simbol yang Tidak Digunakan dan Mengurangkan Saiz Boleh Laksana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan