欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Sep:一個(gè)低內(nèi)存、高性能的CSV文件讀寫(xiě)操作.Net開(kāi)源庫(kù)

admin
2024年9月19日 1:42 本文熱度 683

一個(gè)號(hào)稱(chēng)最高性能的CSV文件讀寫(xiě)操作庫(kù),支持AOT/NativeAOT。

 

01

項(xiàng)目簡(jiǎn)介

Sep 是一個(gè)高性能的 .NET CSV 解析器,具備快速、現(xiàn)代、簡(jiǎn)潔且高效的數(shù)據(jù)處理能力。

先進(jìn)特性:采用 .NET 7+ 和 C# 11+ 的先進(jìn)特性,例如 Span<T>、泛型數(shù)學(xué)接口(ISpanParsable<T>/ISpanFormattable)、ref struct、ArrayPool<T> 等,打造了一個(gè)現(xiàn)代且高效的實(shí)現(xiàn)方式。

簡(jiǎn)潔API:提供了一個(gè)簡(jiǎn)潔而富有表現(xiàn)力的 API,選項(xiàng)精簡(jiǎn),對(duì)輸入輸出的處理透明無(wú)隱藏。你看到什么就得到什么。例如,它默認(rèn)不會(huì)自動(dòng)處理引號(hào)的轉(zhuǎn)義/取消轉(zhuǎn)義。

極速性能:通過(guò)架構(gòu)特定和跨平臺(tái)的 SIMD 矢量化解析技術(shù),支持 64/128/256/512 位路徑(如 AVX2、AVX-512(.NET 8.0+)、NEON),實(shí)現(xiàn)極速處理。利用 csFastFloat 快速解析浮點(diǎn)數(shù)。高效地逐行讀取或?qū)懭霐?shù)據(jù),并有詳盡的基準(zhǔn)測(cè)試驗(yàn)證其性能。

多線程加速:通過(guò)高效的并行 CSV 解析技術(shù),實(shí)現(xiàn)超快速度,比 CsvHelper 快達(dá) 35 倍。

低內(nèi)存占用:智能高效的內(nèi)存管理策略,在預(yù)熱后實(shí)現(xiàn)零內(nèi)存分配,包括輕松讀取或?qū)懭胫禂?shù)組(如特征數(shù)據(jù))而無(wú)需重復(fù)分配內(nèi)存。

全面測(cè)試保障:擁有廣泛的代碼覆蓋率,專(zhuān)注于邊緣情況的測(cè)試,包括隨機(jī)模糊測(cè)試,確保數(shù)據(jù)處理的準(zhǔn)確性和穩(wěn)定性。

跨平臺(tái)兼容:支持 .NET 支持的所有平臺(tái)和架構(gòu),100% 托管,采用現(xiàn)代 C# 編寫(xiě),代碼優(yōu)美。

可修剪且兼容 AOT/NativeAOT:無(wú)反射或動(dòng)態(tài)代碼生成,確保完全可修剪且與提前編譯(Ahead-of-Time)兼容。簡(jiǎn)單的控制臺(tái)測(cè)試程序,可執(zhí)行文件體積小,僅幾 MB。

實(shí)用主義:遵循 RFC-4180 的核心原則,但在引用和行結(jié)束處理上采取實(shí)用主義方法。

 

02

使用方法

簡(jiǎn)單示例代碼

using nietras.SeparatedValues;
// 指定CSV文件的路徑string filePath = "file.csv";
// 使用Sep庫(kù)創(chuàng)建一個(gè)CSV讀取器,從文件中讀取數(shù)據(jù)using var reader = Sep.Reader().FromFile(filePath);
// 遍歷CSV文件中的每一行foreach (var readRow in reader){      // 假設(shè)我們知道CSV文件的列結(jié)構(gòu),可以直接通過(guò)列名訪問(wèn)數(shù)據(jù)      string columnA = readRow["A"].ToString();      string columnB = readRow["B"].ToString();      int columnC = readRow["C"].Parse<int>();      double columnD = readRow["D"].Parse<double>();
     // 處理每一行的數(shù)據(jù)      Console.WriteLine($"A: {columnA}, B: {columnB}, C: {columnC}, D: {columnD}");}

格式化示例代碼

using nietras.SeparatedValues;
// 定義一個(gè)多行字符串,表示一個(gè)CSV格式的數(shù)據(jù)。var text = """                A;B;C;D;E;F                Sep;??;1;1.2;0.1;0.5                CSV;?;2;2.2;0.2;1.5                """;
// 使用Sep庫(kù)創(chuàng)建一個(gè)CSV讀取器,自動(dòng)從標(biāo)題行推斷分隔符。using var reader = Sep.Reader().FromText(text);
// 根據(jù)讀取器的規(guī)格創(chuàng)建一個(gè)寫(xiě)入器,準(zhǔn)備將數(shù)據(jù)寫(xiě)入文本。using var writer = reader.Spec.Writer().ToText();
// 獲取列"B"在標(biāo)題中的索引位置。var idx = reader.Header.IndexOf("B");// 定義一個(gè)包含列名的數(shù)組。var nms = new[] { "E", "F" };
// 遍歷讀取器中的每一行數(shù)據(jù)。foreach (var readRow in reader){      // 將列"A"讀取為只讀的字符跨度。      var a = readRow["A"].Span;      // 將列"B"的值轉(zhuǎn)換為字符串。      var b = readRow[idx].ToString();      // 將列"C"的值解析為整數(shù)。      var c = readRow["C"].Parse<int>();      // 將列"D"的值解析為浮點(diǎn)數(shù),使用csFastFloat庫(kù)進(jìn)行快速解析。      var d = readRow["D"].Parse<float>();      // 將列"E"和"F"的值解析為雙精度浮點(diǎn)數(shù)的跨度。      var s = readRow[nms].Parse<double>();      // 遍歷解析后的數(shù)值,并將每個(gè)值乘以10。      foreach (ref var v in s) { v *= 10; }
     // 開(kāi)始寫(xiě)入新一行數(shù)據(jù),行數(shù)據(jù)在Dispose時(shí)寫(xiě)入。      using var writeRow = writer.NewRow();      // 通過(guò)只讀的字符跨度設(shè)置列"A"的值。      writeRow["A"].Set(a);      // 通過(guò)字符串設(shè)置列"B"的值。      writeRow["B"].Set(b);      // 通過(guò)插值字符串處理器設(shè)置列"C"的值,不會(huì)產(chǎn)生新的內(nèi)存分配。      writeRow["C"].Set($"{c * 2}");      // 格式化列"D"的值,將數(shù)值除以2。      writeRow["D"].Format(d / 2);      // 直接格式化多個(gè)列的值。      writeRow[nms].Format(s);}
Console.WriteLine(writer.ToString());

 

03

項(xiàng)目地址

https://github.com/nietras/Sep

- End -


該文章在 2024/9/19 16:19:10 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved