Rust效能分析:contains方法和binary_search方法哪個快? 2020 年 6 月 4 日 Magic Len 研究分享、 Rust Rust程式語言內建的「contains」方法可以用來判斷某元素是否在一個陣列或是切片中,而「binary_search」方法則可以用來尋找某元素在一個已排序的陣列或是切片中出現的索引位置。那麼問題就來了,這兩個方法若都用來判斷某元素在已排序的陣列或是切片中是否存在的話,究竟哪個會比較快呢? 繼續閱讀
Rust效能分析:原子(Atomic)型別和互斥鎖(Mutex)哪個快? 2019 年 7 月 3 日 Magic Len 研究分享、 Rust Rust程式語言的標準函式庫內建了三種可在不同執行緒間實現同步的機制,分別是原子(Atomic)型別、訊息傳遞(message passing)以及互斥鎖(Mutex)。這三種機制的應用方式差異很大,但在某些情況下原子型別和互斥鎖是可以替換使用的。那麼究竟原子型別和互斥鎖,哪個效能是比較好的呢? 繼續閱讀
Rust效能分析:迭代器的take方法對效能有多大的影響? 2019 年 6 月 5 日 Magic Len 研究分享、 Rust Rust程式語言融合了多種程式設計法(programming paradigm),其中的指令式程式設計(imperative programming)所用的迴圈和函數式程式設計(functional programming)所提供的迭代器(iterator)可以加強陣列或是切片的走訪效能。然而,很多時候我們並不需要直接走訪到陣列或是切片的最尾端,而是只想要在經過指定的迭代次數之後,就結束走訪,這時... 繼續閱讀
Rust效能分析:迭代器的skip方法對效能有多大的影響? 2019 年 5 月 28 日 Magic Len 研究分享、 Rust Rust程式語言融合了多種程式設計法(programming paradigm),其中的指令式程式設計(imperative programming)所用的迴圈和函數式程式設計(functional programming)所提供的迭代器(iterator)可以加強陣列或是切片的走訪效能。然而,很多時候我們並不需要從頭走訪陣列或是切片,這時可以利用Rust提供的陣列轉切片或是切片再切片的功能來進行... 繼續閱讀
Rust效能分析:迭代器的enumerate方法對效能有多大的影響? 2019 年 5 月 24 日 Magic Len 研究分享、 Rust Rust程式語言融合了多種程式設計法(programming paradigm),其中的指令式程式設計(imperative programming)所用的迴圈和函數式程式設計(functional programming)所提供的迭代器(iterator)可以加強陣列或是切片的走訪效能。然而,在走訪陣列或是切片時,迭代器在每次迭代時只會回傳元素的值或參考,而不會將索引值也跟著回傳出來。這個問題雖... 繼續閱讀
Rust效能分析:靜態變數和常數的效能有差異嗎? 2019 年 2 月 3 日 Magic Len 研究分享、 Rust Rust程式語言可以使用「static」關鍵字來宣告出靜態變數,也可以使用「const」關鍵字來宣告出常數。如果靜態變數並沒有再使用「mut」關鍵字來修飾的話,該靜態變數就是「不可變」的,那麼「不可變的靜態變數」和同樣是不可變的「常數」,會有效能上的差異嗎? 繼續閱讀
Rust效能分析:寫入一個字元到Formatter結構體的時候,write_char和write_str方法哪個快? 2019 年 2 月 1 日 Magic Len 研究分享、 Rust Rust程式語言標準函式庫內建的「fmt」模組,提供了「Debug」和「Display」等特性,可以讓有實作這些特性的結構實體直接被使用在「format!」巨集以及其相關巨集中。在對結構體實作「Debug」和「Display」等特性時,我們需要透過「Formatter」結構實體提供的「write_str」、「write_char」或「write_fmt」這三個方法,來寫入要被組合進來的字串。如果我... 繼續閱讀
Rust效能分析:串接字串時,若要串接的字串還沒產生出來,push_str和write_fmt方法哪個快? 2018 年 12 月 19 日 Magic Len 研究分享、 Rust Rust程式語言內建的String結構體,可以用來儲存可變動的字串。在串接字串的時候,經常會使用到String結構實體的「push_str」方法,將其它字串複製進該String結構實體現有的字串資料之後,其背後是使用Vec結構實體的「extend_from_slice」方法來處理的,效能雖然還算不錯,但如果要串接的字串還沒產生出來呢?我們只能先把要串接的字串產生出來之後,再把它複製進另一個Stri... 繼續閱讀
Rust效能分析:串接一個字元到String結構體的時候,push和push_str方法哪個快? 2018 年 12 月 15 日 Magic Len 研究分享、 Rust Rust程式語言內建的String結構體,可以用來儲存可變動的字串。在串接字串的時候,經常會使用到String結構實體的「push_str」方法,將其它字串存進該String結構實體現有的字串資料之後,其背後是使用Vec結構實體的「extend_from_slice」方法來處理的,效能還算不錯。但是如果我們要串接的字串只有一個字元的話,使用切片來處理如此小量的資料真的合適嗎? 繼續閱讀
Rust效能分析:For迴圈和迭代器到底要用哪個? 2018 年 11 月 16 日 Magic Len 研究分享、 Rust Rust程式語言融合了多種程式設計法(programming paradigm),其中的指令式程式設計(imperative programming)所用的迴圈和函數式程式設計(functional programming)所提供的迭代器(iterator)設計模式有著功能上的重疊,那麼究竟應該要用哪種才比較有效率呢? 繼續閱讀