国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

編寫高性能C#代碼 —— Span<T>

這篇具有很好參考價值的文章主要介紹了編寫高性能C#代碼 —— Span<T>。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Span 提供任意內(nèi)存的連續(xù)區(qū)域的類型安全和內(nèi)存安全表示形式。它是在堆棧而不是托管堆上分配的ref結(jié)構(gòu),是對任意內(nèi)存塊的抽象?。

1.關(guān)于Span

  • 在NET Core 2.1中首次引入

  • 提供對任意內(nèi)存上的連續(xù)區(qū)域的讀寫視圖

  • 利用索引/迭代來修改范圍內(nèi)的內(nèi)存
  • 幾乎無開銷

2.和內(nèi)存的關(guān)系

?  Span 表示任意內(nèi)存的連續(xù)區(qū)域。?Span<T>實例通常用于保存數(shù)組的元素或數(shù)組的一部分。 但是,與數(shù)組不同, Span<T>實例可以指向堆棧上托管的內(nèi)存、本機(jī)內(nèi)存或托管的內(nèi)存。

3.性能測試

  Span通常用來處理數(shù)組,所以本次測試的場景是數(shù)組的切分:從一個數(shù)組的中間元素開始,獲取并返回四分之一個元素。

  3.1?數(shù)組初始化

  這里我們準(zhǔn)備一個數(shù)組分三種不同長度進(jìn)行初始化,有利于覆蓋到更多的測試情況。

編寫高性能C#代碼 —— Span<T>

?

  3.2 測試采用三種方式,用BenchmarkDotNet比較一下

  第一種(常規(guī)):

編寫高性能C#代碼 —— Span<T>

?  第二種(復(fù)制):

編寫高性能C#代碼 —— Span<T>

?  第三種(Span切片):

編寫高性能C#代碼 —— Span<T>

?  性能測試結(jié)果如下,可以看到Span的速度是很快的,且不占內(nèi)存。

編寫高性能C#代碼 —— Span<T>

?

?4. 切片

  Span<T>.Slice()方法就是對內(nèi)存進(jìn)行切片,第三種方法區(qū)別于前兩種,本質(zhì)上不創(chuàng)建和銷毀對象,可以認(rèn)為是做到了內(nèi)存0分配

5. ReadOnlySpan

  ReadOnlySpan是Span的只讀表示形式,通常用在string的切片(因為string的不可變性)

編寫高性能C#代碼 —— Span<T>

?

?6. Span<T>局限性

  1. Span是僅限存活在堆棧上的值類型

  2. Span不能是非堆棧類型的字段

  3. Span不能被裝箱

  4. Span不能是異步方法的參數(shù)或局部變量

  5. Span不能被lambda表達(dá)式捕獲文章來源地址http://www.zghlxwxcb.cn/news/detail-745941.html

到了這里,關(guān)于編寫高性能C#代碼 —— Span<T>的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • c++代碼實現(xiàn)一個高性能內(nèi)存池(超詳細(xì)版本)

    c++代碼實現(xiàn)一個高性能內(nèi)存池(超詳細(xì)版本)

    寫在前面 本文的內(nèi)存池代碼是改編自Nginx的內(nèi)存池源碼,思路幾乎一樣。由于Nginx源碼的變量命名我不喜歡,又沒有注釋,看得我很難受。想自己寫一版容易理解的代碼。這應(yīng)該是全網(wǎng)獨一份的超詳細(xì)版本了(笑~). 應(yīng)用場景 寫內(nèi)存池的原理之前,按照慣例先說內(nèi)存池的應(yīng)用

    2024年02月06日
    瀏覽(33)
  • Linux C++性能優(yōu)化秘籍:從編譯器到代碼,探究高性能C++程序的實現(xiàn)之道

    Linux C++性能優(yōu)化秘籍:從編譯器到代碼,探究高性能C++程序的實現(xiàn)之道

    隨著大數(shù)據(jù)、人工智能等技術(shù)的飛速發(fā)展,程序性能優(yōu)化的重要性愈發(fā)突出。優(yōu)化性能可以降低資源消耗、提高系統(tǒng)響應(yīng)速度,從而在有限的硬件資源下,實現(xiàn)更高的吞吐量和處理能力。此外,性能優(yōu)化也有助于降低能耗、減少散熱問題,延長硬件使用壽命。 Linux操作系統(tǒng)具

    2023年04月09日
    瀏覽(47)
  • 【Unity3D熱更新】Unity3D 零成本、高性能的C#的熱更新框架:HybridCLR

    【Unity3D熱更新】Unity3D 零成本、高性能的C#的熱更新框架:HybridCLR

    推薦閱讀 CSDN主頁 GitHub開源地址 Unity3D插件分享 簡書地址 我的個人博客 QQ群:1040082875 大家好,我是佛系工程師 ☆恬靜的小魔龍☆ ,不定時更新Unity開發(fā)技巧,覺得有用記得一鍵三連哦。 相信只要做過熱更新的小伙伴,都被熱更新搞過心態(tài)吧。 我有一個小伙伴,本來是面向

    2024年01月16日
    瀏覽(27)
  • 高性能小模型SLM最新優(yōu)化方案和熱門應(yīng)用盤點,附配套模型和開源代碼

    高性能小模型SLM最新優(yōu)化方案和熱門應(yīng)用盤點,附配套模型和開源代碼

    當(dāng)大多數(shù)人都還在卷誰的大模型參數(shù)規(guī)模大的時候,聰明人已經(jīng)開始搞“小模型”了(doge)。 這里的小模型指的小型語言模型(Small Language Model,簡稱SLM),通常用于解決資源受限或?qū)崟r性要求較高的場景,比如一些邊緣設(shè)備(智能手機(jī)、物聯(lián)網(wǎng)設(shè)備和嵌入式系統(tǒng)等),大模

    2024年01月16日
    瀏覽(27)
  • 《高性能MySQL》——創(chuàng)建高性能的索引(筆記)

    《高性能MySQL》——創(chuàng)建高性能的索引(筆記)

    索引(在MySQL中也叫做“鍵(key)”) 是存儲引擎用于快速找到記錄的一種數(shù)據(jù)結(jié)構(gòu)。 索引對于良好的性能非常關(guān)鍵。尤其是當(dāng)表中的數(shù)據(jù)量越來越大時,索引對性能的影響愈發(fā)重要。 在數(shù)據(jù)量較小且負(fù)載較低時,不恰當(dāng)?shù)乃饕龑π阅艿挠绊懣赡苓€不明顯,但當(dāng)數(shù)據(jù)量逐漸增大時

    2024年02月07日
    瀏覽(99)
  • 【Linux高性能服務(wù)器編程】——高性能服務(wù)器框架

    【Linux高性能服務(wù)器編程】——高性能服務(wù)器框架

    ? hello !大家好呀! 歡迎大家來到我的Linux高性能服務(wù)器編程系列之高性能服務(wù)器框架介紹,在這篇文章中, 你將會學(xué)習(xí)到高效的創(chuàng)建自己的高性能服務(wù)器,并且我會給出源碼進(jìn)行剖析,以及手繪UML圖來幫助大家來理解,希望能讓大家更能了解網(wǎng)絡(luò)編程技術(shù)?。?! 希望這篇

    2024年04月25日
    瀏覽(101)
  • 讀高性能MySQL(第4版)筆記08_創(chuàng)建高性能索引(上)

    讀高性能MySQL(第4版)筆記08_創(chuàng)建高性能索引(上)

    2.4.2.1.?按照索引列中的數(shù)據(jù)大小順序存儲的 2.4.3.1.?鍵前綴查找只適用于根據(jù)最左前綴的查找 2.4.4.1.?在查詢某些條件的數(shù)據(jù)時,存儲引擎不再需要進(jìn)行全表掃描 2.4.4.2.?通過比較節(jié)點頁的值和要查找的值可以找到合適的指針進(jìn)入下層子節(jié)點,這些指針實際上定義了子節(jié)點頁中

    2024年02月08日
    瀏覽(98)
  • 讀高性能MySQL(第4版)筆記09_創(chuàng)建高性能索引(下)

    讀高性能MySQL(第4版)筆記09_創(chuàng)建高性能索引(下)

    1.4.4.1.?InnoDB的二級索引在葉子節(jié)點中保存了記錄的主鍵值,所以如果二級索引能夠覆蓋查詢,則可以避免對主鍵索引的二次查詢 7.1.5.1.?常見的類似錯誤通常是由于嘗試使用rsync備份InnoDB導(dǎo)致的 7.3.3.1.?否則,對于范圍查詢、索引覆蓋掃描等操作來說,速度可能會降低很多 7

    2024年02月08日
    瀏覽(103)
  • 《高性能MYSQL》-- 查詢性能優(yōu)化

    《高性能MYSQL》-- 查詢性能優(yōu)化

    查詢性能優(yōu)化 深刻地理解MySQL如何真正地執(zhí)行查詢,并明白高效和低效的原因何在 查詢的生命周期(不完整):從客戶端到服務(wù)器,然后服務(wù)器上進(jìn)行語法解析,生成執(zhí)行計劃,執(zhí)行,并給客戶端返回結(jié)果。 一條查詢,如果查詢得很慢,原因大概率是訪問的數(shù)據(jù)太多 對于低

    2024年03月11日
    瀏覽(99)
  • 高性能MySQL實戰(zhàn)(三):性能優(yōu)化

    大家好,我是 方圓 。這篇主要介紹對慢 SQL 優(yōu)化的一些手段,而在講解具體的優(yōu)化措施之前,我想先對 EXPLAIN 進(jìn)行介紹,它是我們在分析查詢時必要的操作,理解了它輸出結(jié)果的內(nèi)容更有利于我們優(yōu)化 SQL。為了方便大家的閱讀,在下文中規(guī)定類似 key1 的表示二級索引,key_

    2024年02月11日
    瀏覽(97)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包