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

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

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

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

回答
編輯回答
巷尾

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

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

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

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

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

反射帶來了代碼的靈活性,減少代碼量,減少重復(fù)工作,因?yàn)榇a少了,所以減少了BUG.

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

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

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

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

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

2017年11月23日 10:53