鍍金池/ 問答/Java  PHP  Python  C#  GO/ 用了反射的代碼真的會變慢嗎?變慢的原因是什么呢?

用了反射的代碼真的會變慢嗎?變慢的原因是什么呢?

很多人說反射性能很差,最好換別的方式來實現(xiàn)。

反射的性能真的很差嗎?反射導(dǎo)致代碼變慢的原因是什么呢?

回答
編輯回答
巷尾

反射主要是用來做框架的,一般不會去使用的。

2017年12月18日 00:15
編輯回答
女流氓

反射性能很差是沒錯的,但是現(xiàn)在沒有幾個框架不用反射的。

關(guān)鍵是如何用,理想的情況是應(yīng)用啟動時一次反射,注入,之后不再掃描。如spring的實現(xiàn)。
后果是應(yīng)用啟動較慢,但一旦啟動就健步如飛了。

二是需要動態(tài)加載的場景,這時要合理地使用緩存,把通過反射查詢到的結(jié)果緩存起來。結(jié)果是第一次訪問較慢,以后便和沒有用反射一樣了。

反射帶來了代碼的靈活性,減少代碼量,減少重復(fù)工作,因為代碼少了,所以減少了BUG.

最后要說的一點是,人比機器貴,在沒有測量的基礎(chǔ)上談性能都是扯蛋。
軟件項目開發(fā)首先要想是的盡早上線,幫老板省錢,發(fā)現(xiàn)慢時加緩存,買內(nèi)存,換固態(tài)盤,加新服務(wù)器,哪項都比人員工資便宜。

2018年1月27日 04:12
編輯回答
陪妳哭

暫時還未遇到性能方面的問題。不過。。多人開發(fā)中還是少用反射吧。不然真的很尷尬。

2017年9月10日 06:41
編輯回答
乖乖噠

最好不要用這種情況根本不存在,說出來都是給初學(xué)者裝逼的,用反射必然是在編譯期無法拿到相應(yīng)的對象,方法,字段情況下,沒有人會在可以直接new對象的情況下,故意用反射去調(diào)用。

2017年11月23日 10:53