Самой важной функцией, без которой я не могу жить, является Visual Studio 2008.: P
Параметры компиляции по умолчанию не включают отладочную информацию, вы должны специально указать компилятору включить ее. Есть несколько причин, по которым большинство людей пропускают его:
[EDIT] Как отметил Джон, байт-код Java сегодня (сильно) не оптимизирован. Таким образом, выходные данные файлов классов будут одинаковыми для обоих случаев (только файл класса с отладочной информацией будет больше). Код оптимизирован в JIT во время выполнения, что позволяет среде выполнения оптимизировать код для ЦП, памяти (количество и макет) и т. Д.
Упомянутый 5% штраф - это когда вы запускаете код и добавляете параметры командной строки чтобы позволить удаленному отладчику подключиться к процессу. Если вы не включите удаленную отладку, штраф не будет (кроме загрузки класса, но это происходит только один раз).
Вероятный размер установки. Информация об отладке увеличивает накладные расходы на jar-файлы, которые, вероятно, не нравятся Sun.
Мне недавно пришлось исследовать проблему Java Web Start - информация об отладке недоступна - поэтому добавление полной трассировки в консоль java и загрузка исходного кода помогли некоторые, но код довольно запутанный, поэтому мне просто нужна отладочная сборка.
JDK должен быть скомпилирован с ПОЛНОЙ отладочной информацией везде!