Я изначально нативный программист C ++, в C ++ каждый процесс в вашей программе связан с вашим кодом, то есть ничего не происходит, если вы не хотите, чтобы это произошло.И каждый бит памяти выделяется (и освобождается) в соответствии с тем, что вы написали.Таким образом, ответственность за производительность лежит на вас, если вы делаете добро, вы получаете отличную производительность.
(Примечание: пожалуйста, не жалуйтесь на код, который сам не написал, такой как STL, это неуправляемый код на C ++в конце концов, это важная часть).
Но в управляемом коде, таком как код в Java и C #, вы не контролируете каждый процесс, а память «скрыта» или не находится под вашим контролем,в некоторой степени.И это делает производительность чем-то относительно неизвестным, в основном вы боитесь плохой производительности.
Итак, мой вопрос: о каких проблемах и жирных линиях я должен заботиться и иметь в виду, чтобы добиться хорошей производительности в управляемом коде?
Я мог бы подумать только о некоторых практиках, таких как:
- Осознавая бокс и распаковку.
- Выбор правильной Коллекции, которая наилучшим образом соответствует вашим потребностями имеет самые низкие эксплуатационные расходы.
Но этого никогда не бывает достаточно и даже убедительно!На самом деле, возможно, мне не следовало упоминать их.
Обратите внимание, что я не прошу сравнивать код C ++ VS C # (или Java), я просто упомянул C ++, чтобы объяснить проблему.