日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Rust優于C++的兩個原因 ?

來源: 責編: 時間:2024-04-28 17:20:44 210觀看
導讀盡管學習曲線陡峭,Rust已經證明了自己是一門值得掌握的語言。今天,讓我們深入研究一下Rust優于C++語言的原因。原因1:積極的編譯器優化Rust的編譯器(LLVM)比C++編譯器更積極地優化代碼,這是因為所有權規則,LLVM可以做出假

盡管學習曲線陡峭,Rust已經證明了自己是一門值得掌握的語言。今天,讓我們深入研究一下Rust優于C++語言的原因。RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

原因1:積極的編譯器優化RMJ28資訊網——每日最新資訊28at.com

  • Rust的編譯器(LLVM)比C++編譯器更積極地優化代碼,這是因為所有權規則,LLVM可以做出假設。
  • LLVM在內聯函數方面更加積極,特別是對于小函數。內聯避免了函數調用開銷并使其快速。

例如,下面的函數可能會或可能不會被C++編譯器內聯,但LLVM肯定會內聯它。RMJ28資訊網——每日最新資訊28at.com

fn f(n: i32, dp: &mut Vec<i32>) -> i32 {    let n1 = n as usize;    if dp[n1] != -1 {        return dp[n1];    }    dp[n1] = Self::f(n-1, dp) + Self::f(n-2, dp) + Self::f(n-3, dp);    dp[n1]}

RMJ28資訊網——每日最新資訊28at.com

原因2:較低的運行時開銷RMJ28資訊網——每日最新資訊28at.com

1,C++棧展開導致運行緩慢

什么是棧展開?RMJ28資訊網——每日最新資訊28at.com

每當拋出異常時,在棧上開始分配資源和調用對象的析構函數的過程,這稱為棧展開。RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

class Resource {public:    Resource() {        std::cout << "Resource acquired/n";    }    ~Resource() {        std::cout << "Resource released/n";    }};void foo() {    Resource res; // Resource acquired    throw std::runtime_error("Error in foo");}int main() {    try {        foo();    } catch (const std::runtime_error& e) {        std::cerr << "Caught exception: " << e.what() << std::endl;    }    return 0;}

RMJ28資訊網——每日最新資訊28at.com

棧展開是如何工作的?RMJ28資訊網——每日最新資訊28at.com

  • 調用foo()時,它獲取一個Resource對象。
  • 然后拋出std::runtime_error異常。
  • 作為結果,棧開始展開,并調用res的析構函數來釋放Resource。
  • 然后,在main()函數中捕獲異常。
  • 這確保了即使在出現異常的情況下也能正確地清理資源。

棧展開有運行時開銷,當存在深度嵌套的函數調用或具有復雜析構函數的對象時,將花費時間來釋放對象。RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

2,Rust使用Result和Option類型刪除了的棧展開

Rust的Result和Option類型用于錯誤處理,通過模式匹配而不是異常來處理。RMJ28資訊網——每日最新資訊28at.com

fn divide(a: i32, b: i32) -> Result {    if b == 0 {        return Err("Division by zero");    }    Ok(a / b)}fn main() {    match divide(10, 0) {        Ok(result) => println!("Result: {}", result),        Err(e) => eprintln!("Error: {}", e),    }}

RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

3,C++運行時類型信息(RTTI)增加了二進制大小和運行時開銷

增加二進制大小:RMJ28資訊網——每日最新資訊28at.com

運行時類型信息(RTTI),RTTI意味著在運行時執行動態類型檢查和類型轉換。當啟用RTTI時,編譯器在二進制文件中包含額外的元數據以支持動態類型信息。RMJ28資訊網——每日最新資訊28at.com

這些元數據通常包括:類型信息表(類型描述符)、用于動態調度等的虛函數表(vtable)。這些表增加了二進制文件的大小,特別是對于具有大量多態類的程序。RMJ28資訊網——每日最新資訊28at.com

增加執行時間:RMJ28資訊網——每日最新資訊28at.com

動態強制轉換(dynamic_cast),這包括運行時類型檢查,以確保轉換的正確性。這種類型檢查增加了程序執行時間的開銷。RMJ28資訊網——每日最新資訊28at.com

虛函數調用,C++語言中的動態多態性適用于虛函數調用,這需要在運行時查找適當的函數。與靜態調度相比,會產生額外的運行時開銷。RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

#include <iostream>#include <typeinfo>class Base {public:    virtual ~Base() {}};class Derived : public Base {};int main() {    Base* ptr = new Derived();    Derived* derived = dynamic_cast(ptr);    if (derived) {        std::cout << "Dynamic cast successful/n";    } else {        std::cout << "Dynamic cast failed/n";    }    delete ptr;    return 0;}

RMJ28資訊網——每日最新資訊28at.com

4,Rust中沒有RTTI ???

Rust的類型系統支持多態行為和動態分派(基于trait和enum),而不需要RTTI。Box啟用動態分派,不需要運行時類型信息。RMJ28資訊網——每日最新資訊28at.com

trait Printable {    fn print(&self);}struct Base;struct Derived;impl Printable for Base {    fn print(&self) {        println!("Base");    }}impl Printable for Derived {    fn print(&self) {        println!("Derived");    }}fn main() {    let base: Box = Box::new(Derived);    base.print();}

Rust的編譯器建立在LLVM上,將高級結構轉換為高效的機器碼。RMJ28資訊網——每日最新資訊28at.com

RMJ28資訊網——每日最新資訊28at.com

Rust優于C++的這兩個原因成立嗎???RMJ28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-86213-0.htmlRust優于C++的兩個原因 ?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python編程大師之路:精通Exec函數的高級技巧

下一篇: 世界上最厲害的編程神器 ,被大多數人拋棄了......

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
最新中文字幕亚洲| 欧美日产国产成人免费图片| 99re6热只有精品免费观看| 亚洲精品欧美日韩专区| 99在线热播精品免费| 亚洲欧美国产高清va在线播| 久久国产日韩欧美| 免费一级欧美片在线观看| 欧美日韩国产天堂| 国产欧美 在线欧美| 激情视频亚洲| 91久久在线观看| 亚洲午夜精品久久久久久app| 欧美一级在线亚洲天堂| 免费美女久久99| 国产精品久久久对白| 韩国三级电影一区二区| 日韩视频中文字幕| 欧美一区二区高清| 欧美精品九九99久久| 国产伦精品一区二区| 亚洲国产精品传媒在线观看 | 欧美成人在线免费观看| 欧美天堂亚洲电影院在线观看| 国产丝袜美腿一区二区三区| 亚洲日本欧美在线| 欧美中文字幕精品| 国产在线麻豆精品观看| 亚洲人成久久| 欧美在线观看一区| 欧美日韩美女在线| 曰本成人黄色| 亚洲欧美国产77777| 欧美黄色小视频| 国模叶桐国产精品一区| 亚洲午夜精品久久久久久app| 蜜桃av综合| 国产性做久久久久久| 一区二区三区高清不卡| 免费久久99精品国产自| 国产美女一区| 一区二区三区不卡视频在线观看| 久久精品国产一区二区三区免费看| 欧美日韩国产免费| 在线观看视频一区| 欧美伊人影院| 午夜日韩激情| 欧美国产亚洲精品久久久8v| 国产午夜精品理论片a级探花| 一本久道久久久| 欧美mv日韩mv国产网站app| 国产欧美日韩伦理| 制服丝袜亚洲播放| 欧美激情综合亚洲一二区| 黑人中文字幕一区二区三区| 午夜精品久久久| 欧美午夜激情小视频| 亚洲精品日韩在线观看| 久久尤物电影视频在线观看| 国产亚洲免费的视频看| 亚洲欧美日韩精品久久亚洲区 | 亚洲欧洲视频| 久热国产精品视频| 国语自产偷拍精品视频偷| 新67194成人永久网站| 国产精品成人久久久久| av成人免费观看| 欧美日本高清| 亚洲美女啪啪| 欧美激情一区二区三级高清视频| **网站欧美大片在线观看| 久久精品欧美| 国产一区二区久久| 欧美在线影院| 欧美风情在线| 在线精品视频一区二区| 久久久久久一区二区三区| 国产亚洲在线观看| 久久爱另类一区二区小说| 国产欧美精品在线观看| 亚洲欧美国产77777| 国产精品一区二区在线观看不卡| 亚洲资源在线观看| 国产精品日韩欧美一区| 亚洲欧美日韩在线观看a三区| 国产精品欧美一区喷水| 亚洲欧美影院| 国产日韩一区在线| 久久精品视频在线免费观看| 国产综合色精品一区二区三区| 欧美在线网址| 午夜免费电影一区在线观看| 欧美三区在线视频| 中文国产成人精品久久一| 欧美性色aⅴ视频一区日韩精品| 这里只有精品丝袜| 国产精品视频精品| 久久gogo国模裸体人体| 一区二区在线不卡| 欧美大片一区二区三区| 日韩视频中文| 国产精品久久久久久亚洲调教 | 免费久久99精品国产| 亚洲剧情一区二区| 欧美系列电影免费观看| 午夜在线精品偷拍| 激情欧美日韩一区| 欧美黄色影院| 亚洲夜间福利| 国产亚洲欧美色| 蜜臀久久99精品久久久久久9| 亚洲精品一区二区三区樱花 | 欧美电影免费观看大全| 一区二区欧美日韩视频| 国产精品伊人日日| 久久婷婷色综合| 亚洲美女av在线播放| 国产精品免费看久久久香蕉| 久久久久高清| 日韩视频第一页| 国产欧美精品一区二区色综合 | 久久久久se| 亚洲九九爱视频| 国产精品久久久久久av下载红粉 | 午夜一区在线| 在线观看欧美激情| 欧美性淫爽ww久久久久无| 久久国产视频网| 亚洲精选在线观看| 国产精品中文字幕欧美| 免费欧美在线视频| 亚洲自拍偷拍一区| 亚洲风情亚aⅴ在线发布| 欧美性猛交xxxx免费看久久久| 久久精品国内一区二区三区| 亚洲国产精品t66y| 国产精品制服诱惑| 欧美国产一区视频在线观看| 亚洲欧美日韩一区二区三区在线观看| 国模大胆一区二区三区| 欧美日韩精品在线视频| 久久成人在线| 一本色道久久综合狠狠躁篇的优点| 国产欧美一区二区精品秋霞影院| 欧美a级在线| 亚久久调教视频| 日韩亚洲精品在线| 激情欧美一区二区三区| 国产精品国产成人国产三级| 鲁大师成人一区二区三区| 亚洲在线一区二区| 亚洲国产中文字幕在线观看| 国产精品无码永久免费888| 欧美国产日韩精品| 久久er99精品| 亚洲在线视频免费观看| 亚洲国产综合在线| 国产日本精品| 欧美性猛交一区二区三区精品| 欧美成人精品在线播放| 久久精品一区二区三区四区| 亚洲影视综合| 99精品欧美一区二区三区| 在线观看免费视频综合| 国产色视频一区| 国产精品高潮呻吟久久av无限| 欧美高清在线视频| 狂野欧美性猛交xxxx巴西| 欧美在线高清视频| 亚洲女同同性videoxma| 一区二区三区高清| 亚洲精品永久免费| 亚洲国产精品成人精品| 精品999网站| 国产一区日韩二区欧美三区| 国产精品一区久久久| 国产精品成人一区二区三区夜夜夜| 欧美搞黄网站| 欧美不卡一卡二卡免费版| 久久夜色精品国产| 久久精品亚洲精品国产欧美kt∨| 亚洲欧美激情视频| 亚洲天堂免费观看| 一本大道av伊人久久综合| 亚洲黄色免费电影| 在线观看精品视频| 精品91视频| 永久免费视频成人| 精品粉嫩aⅴ一区二区三区四区| 国产视频一区二区在线观看| 国产精品视频九色porn| 欧美亚洲成人网| 欧美三级精品| 欧美视频一区二区三区四区| 欧美日韩国产一中文字不卡| 欧美日本精品| 欧美另类一区| 欧美精选在线| 欧美日韩成人精品| 欧美日韩成人在线观看| 欧美日韩国产一中文字不卡| 欧美日本免费| 国产精品国产精品| 国产精品老女人精品视频|