簡體   English   中英

跨.NET語言性能

[英]Cross .NET Languages Performances

將多個.NET語言(Delphi,VB.NET,C#)用於同一個應用程序(當然,在不同的類庫中) 完整的C#應用​​程序相比,可以降低性能嗎?

我不是CLR的專家,但我猜你會有非常相似的表現。 所有語言都編譯為在CLR上運行的MSIL。 根據編譯器生成的MSIL,性能可能會有所不同。 也就是說,VB.NET中的類似代碼可能會編譯為比C#編譯器更少(或更多)優化的MSIL。

雖然我手頭沒有任何基准,但我會說大部分都不應該。 這些不同的語言都將代碼編譯成CIL,所以你應該沒問題。

這將是不同的地方是在DLR(IronPython,IronRuby等)上運行的語言。 他們正在編譯使用CLR中不存在的一些功能,這些功能成本更高。

沒有任何確鑿的證據可以證明這一點,我只會做出有根據的猜測並拒絕。 由於您的程序集被編譯為幾乎相同的IL,因此使用CLR語言的不同實現時,您實際上不會看到任何性能下降。

正如其他答案所提到的,所有代碼最終都編譯成CIL,因此如果代碼在各種語言中一致地完成(並且您沒有啟用編譯器優化),則生成的IL將會非常相同。 現在,如果您擁有相同的代碼並使用編譯器優化,您可能會遇到一組不同的IL,這會對性能產生影響。

正如這個答案所提出的那樣,DLR可能會對性能產生影響。 我所聽到/讀過的大部分內容雖然表明性能影響幾乎可以忽略不計。

我同意其他答案。 唯一可能影響性能的是,如果您要加載許多程序集,您將看到開銷。 但是,開銷與用於創建程序集的語言無關,但如果混合使用許多不同的組件,最終可能會產生更多的程序集。 如果您的申請不是這樣,那么您應該沒事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM