Насколько дорогостоящий объект Typecasting с точки зрения производительности?
Должен ли я стараться избегать Typecasting, когда это возможно?Производительность объекта Typecasting
ответ
Это достаточно дешево, что он попадает в категорию преждевременной оптимизации. Не теряйте время, даже размышляя или задавая вопросы об этом, если вы не профилировали свое приложение и не решили, что это проблема, а самое главное: не компрометируйте свой дизайн, чтобы его избежать.
Нет, это не должно влиять на производительность, которая достаточно значительна, чтобы иметь значение.
У вас будет определенная цена, потому что информация о времени выполнения должна быть проверена, чтобы гарантировать, что бросок будет работать. По сравнению со всем остальным, я сомневаюсь, что это будет значительным, но вы можете попробовать и измерить его.
В целом, приведение типов (IMHO) является признаком того, что что-то не так в дизайне. Конечно, иногда вы не можете избежать этого (например, работая с устаревшими коллекциями), но я определенно посмотрю, смогу ли я удалить его.
В зависимости от того, что вы подразумеваете под типом. Существует «повышение», которое вам ничего не стоит, и есть «понижение», которое вам очень дорого стоит. Ответ на второй также начинается с «это зависит». Обычно я избегаю понижения в моем коде, потому что, с моей экспроприации, если это чрезмерно используется в вашем коде, это означает, что дизайн плохой. Что, с другой стороны, не обязательно должно означать, что его вообще нельзя использовать.
JavaWorld: The cost of casting
Кастинг используются для преобразования между типами - между ссылочными типами в частности, для типа литья операцию, в которой интересующие нас здесь.
вентиляционного операция (также называемая преобразования увеличивающегося в спецификации языка Java в ) преобразовать ссылку на подкласса к ссылке класса предка . Эта операция отливки обычно автоматическая, так как всегда безопасна и может быть , реализованная непосредственно компилятором.
потупив операции (также называемые преобразования сужающейся в спецификации языка Java в ) преобразовать ссылку на класс предка к подклассу ссылки. Эта операция литья создает накладные расходы на выполнение, так как Java требует, чтобы приведение было проверено на этапе исполнения , чтобы убедиться, что оно действительно. Если указанный объект не является экземпляра либо целевого типа для отлитых или подкласса этого типа, попытки броска не допускается и должен бросить java.lang.ClassCastException.
- 1. Python: typecasting переменная в объявлении метода объекта?
- 2. Typecasting для получения значения от объекта json
- 3. Custom typecasting
- 4. Typecasting Inversion
- 5. Byte typecasting
- 6. JSP Страница HttpServletRequest getAttribute Typecasting
- 7. Generics vs Производительность объекта
- 8. C++ Малая производительность объекта
- 9. Производительность запроса объекта LINQ
- 10. PDO производительность объекта
- 11. Изменить тип объекта после его создания (typecasting in Python)
- 12. typecasting tuples in swift
- 13. Указатель typecasting в c
- 14. Typecasting in java
- 15. Typecasting на основе переменной
- 16. void pointer typecasting
- 17. typecasting с StringTokenizer
- 18. typecasting android activities
- 19. typecasting in c
- 20. конструктор и typecasting
- 21. Typecasting and foreach
- 22. Сравнение после Typecasting
- 23. Динамическая Typecasting в Java
- 24. Typecasting malloc C++
- 25. typecasting указатель на int.
- 26. Typecasting in C program
- 27. Pandas Dataframe automatic typecasting
- 28. Java - TypeCasting Вопрос
- 29. Функция Указатели typecasting
- 30. Typecasting in SML
+1: Хотя это может стоить немного с точки зрения производительности, хороший дизайн является более важной причиной, чтобы избежать его. ;) –