Visual Studio 2019 Pratinjau 1 memperkenalkan debugger yang lebih baik untuk C ++ yang menggunakan proses 64-bit eksternal untuk meng-host komponen intensif sumber dayanya. Jika sebelumnya Anda memiliki masalah memori saat debugging aplikasi C ++, sekarang masalah ini sebagian besar harus diselesaikan dengan Visual Studio 2019.
Di bawah ini adalah contoh praktis men-debug Gears of War 4.

Latar belakang
Memberikan umpan balik, pengembang C ++ sering berbicara tentang masalah yang terkait dengan penggunaan memori tinggi saat debugging aplikasi C ++ yang kompleks. Konsumsi memori yang besar dikaitkan dengan sejumlah besar data simbol, yang harus dimuat dan ditampilkan oleh debugger di jendela debugger. Selain itu, jumlah informasi ini terus bertambah selama bekerja. Pada akhirnya, proses Visual Studio mungkin gagal karena kehabisan memori.
Kami telah membuat peningkatan signifikan dalam Visual Studio 2017 untuk mengurangi masalah ini. Sebagai contoh, pembaruan 15.6 memperkenalkan optimasi memori untuk / Debug: fastlink, yang menyebabkan pengurangan 30% dalam konsumsi memori oleh debugger. Karena kami berusaha untuk menghindari masalah ini dalam Visual Studio 2019, kami memindahkan komponen-komponen yang menggunakan banyak memori ke proses 64-bit yang terpisah.
Studi Kasus: Debugging Gears of War 4
Kami bekerja erat dengan tim mitra internal dan eksternal untuk memastikan bahwa perubahan yang kami lakukan pada debugger telah divalidasi dan divalidasi dalam aplikasi besar, dunia nyata. Di bawah ini kami menggandakan video dari cdpv. Ini menunjukkan perbandingan paralel penggunaan memori antara Visual Studio 2017 dan Visual Studio 2019 ketika men-debug Gears of War 4 yang dikembangkan oleh The Coalition. Penggunaan memori Visual Studio 2017 meningkat menjadi 1,3 GB setelah beberapa menit melihat kode permainan dan memeriksa variabel. Visual Studio 2019 menyediakan penggunaan memori yang jauh lebih baik dalam skenario yang sama: jumlah memori yang digunakan tetap sekitar 285 MB, karena data simbol disimpan dalam alur kerja debugger 64-bit.

Semuanya sekarang bekerja jauh lebih baik di runtime juga.
Skenario yang Tidak Didukung dan Beberapa Masalah yang Diketahui
- Fitur ini tidak didukung pada Windows 32-bit.
- Simbol untuk modul C ++ / CLI masih memuat dalam proses
- Pengaya C ++ Expression Evaluator yang sudah usang (di sini contoh) tidak didukung dalam mode ini.
Jika Anda perlu terus menggunakan debugger dalam proses, Anda dapat menonaktifkan fitur dengan masuk ke tab "Debugging" di "Tools" -> "Options" dan hapus centang "Load simbol debug dalam proses eksternal (hanya asli)".
Orang-orang dari
Komunitas Pengembang Microsoft @msdevru, saluran komunitas Pengembang Microsoft untuk pengembang dan semua orang yang tertarik dengan teknologi baru membantu kami menyiapkan artikel ini.