cost 489 ms
splice() 實際上是如何在 Linux 中進行零拷貝的?

[英]How is splice() actually doing zero-copy in Linux?

我是零復制概念的新手,但據我了解,這是一種不將任何內容從 kernel 緩沖區復制到用戶緩沖區並直接在 2 個 kernel 緩沖區之間傳遞數據的方法。 這樣,CPU 就不必將數據從 kernel 緩沖區復制到用戶緩沖區並返回到 kernel 緩沖區。 CPU 現在所做的只是在 2 個 kern ...

有沒有辦法使 std::string 引用外部提供的緩沖區但不擁有它?

[英]Is there a way make a std::string that references an externally provided buffer but not own it?

基本上,如果一個人有一個用於 null 終止字符串的預加載緩沖區和要引用的長度,並且想將對它的引用傳遞給采用 std::string & 但不復制字符串或擁有它的方法,是嗎可能這樣做嗎? 這只會有一個有限的生命周期,其管理方式是僅在緩沖區有效時才有效。 ...

Numpy 數組:無需復制即可獲取原始字節

[英]Numpy array: get the raw bytes without copying

我想多與NumPy陣列的字節串聯成一個單一bytearray在HTTP POST請求發送。 我能想到的最有效的方法是創建一個足夠大的bytearray對象,然后將所有 numpy 數組中的字節連續寫入其中。 代碼如下所示: tobytes()方法不是零拷貝方法。 它將把 numpy 數組的 ...

如何實現零拷貝形式的gRPC C++

[英]How to implement zero-copy form gRPC c++

我想編寫一個 gRPC 服務器(c++),在某些情況下用作 FTP 服務器。 具體來說,客戶端通過文件名請求文件,而服務器返回文件內容(如果存在)。 在傳統的socket編程中,我可以利用linux系統的sendfile實現零拷貝。 這意味着文件內容將直接從磁盤進入套接字緩沖區,而無需在用戶空間中傳 ...

你能從兩個 np.float 1d 數組創建一個 np.complex128 1d 數組而不復制嗎?

[英]can you create a np.complex128 1d array from two np.float 1d arrays without copy?

設置: 我已經從共享存儲器兩個陣列reals和imags : 然后我讓它們numpy數組,命名為reals2和imags2 ,沒有任何副本: 然后我想制作一個np.complex128 1D-array data ,再次不復制數據,但我不知道如何。 問題: 你能從一對浮點數組制作一個n ...

TCP 文件傳輸 - 內核復制機制

[英]TCP File Transfer - Kernel copy mechanisms

我想知道,用戶空間和內核空間之間的復制過程的速度,以及整個 tcp 發送/接收過程中的復制速度是否取決於文件的類型(.txt、.mp4)。 我的意思不是文件大小,而是字節或任何東西的“結構”。 我搜索了很長一段時間,但沒有找到任何相關的東西。 是否有我可以查找的有用短語或術語? 提前致謝! ...

零拷貝用戶空間 TCP 發送 dma_mmap_coherent() 映射 memory

[英]Zero-copy user-space TCP send of dma_mmap_coherent() mapped memory

我在 Cyclone V SoC 上運行 Linux 5.1,這是一種在一個芯片中具有兩個 ARMv7 內核的 FPGA。 我的目標是從外部接口收集大量數據,並通過 TCP 套接字輸出這些數據。 這里的挑戰是數據速率非常高並且可能接近飽和 GbE 接口。 我有一個工作實現,它只使用對套接字的wri ...

Windows中的Netty零復制

[英]Netty Zero-copy in windows

1)Netty的零拷貝在Windows 7上工作嗎? 2)有人有Netty的客戶端服務器零拷貝用法示例嗎? 3)我還找到了一個使用FileChannel進行零復制的示例,netty實現與java.nio.channels.FileChannel實現之間的區別是什么? ...

Eigen SparseMatrix的零拷貝構造

[英]Zero-copy construction of an Eigen SparseMatrix

我有以下問題: 我有一個需要通過網絡發送的Eigen::SparseMatrix ,我的網絡庫只支持發送基本類型的數組。 我可以通過執行類似(這里是支持對象的代碼 )之類的操作來檢索指向SparseMatrix的支持數組的指針: 現在在另一邊我可以訪問這兩個數組。 但是AF ...

有沒有一種可移植的方法可以從類似套接字的文件描述符中丟棄大量可讀字節?

[英]Is there a portable way to discard a number of readable bytes from a socket-like file descriptor?

是否有一種可移植的方法來丟棄套接字中的多個傳入字節,而不將其復制到用戶空間? 在常規文件上,我可以使用lseek() ,但是在套接字上,這是不可能的。 我有兩種可能需要的方案: 記錄流到達文件描述符(可以是TCP,SOCK_STREAM類型的UNIX域套接字或潛在的管道)上。 每 ...

FileChannel.transferTo(據說是零拷貝)未獲得任何性能提升

[英]FileChannel.transferTo (supposedly zero-copy) not giving any performance gain

我正在使用REST API,該API的端點可以下載大小可能大於2 GB的文件。 我已經讀到Java的FileChannel.transferTo(...)如果操作系統支持,將使用零復制。 在MacBook Pro OS 10.11.6上進行開發期間,我的服務器在localhost上運行。 ...

Netty 4 HttpContentCompressor文件區域

[英]Netty 4 HttpContentCompressor file region

我正在嘗試將文件發送到響應並支持編碼。 該代碼大部分是從Netty github中的示例之一復制的。 當服務器使用SSL時,一切正常。 不使用SSL時,將完成零拷貝文件傳輸,並且編碼不會產生正確的輸出。 我已經准備好這篇博客文章 ,似乎表明我正在嘗試做的事情是可行的,但是我不理 ...

在內核4.14中發送帶有'MSG_ZEROCOPY'標志和'SO_ZEROCOPY'選項的bufs的行為要比non_zerocpy差

[英]Sending bufs with 'MSG_ZEROCOPY' flag and 'SO_ZEROCOPY' option in kernel 4.14 behaves worse than non_zerocpy

我嘗試了4.14內核的zero_copy,以下是有關內核4.14中zero_copy的詳細信息。 [1]( https://netdevconf.org/2.1/papers/netdev.pdf ) 我在作為緩存代理的squid中對其進行了測試。我的代碼與上面的代碼有所不同。 我 ...

如何使用已啟用Futures的Hyper Chunk的Serde Zero-copy反序列化來存儲結果?

[英]How do I store a result using Serde Zero-copy deserialization of a Futures-enabled Hyper Chunk?

我正在使用期貨,tokio,hyper和serde_json來請求和反序列化我需要保留的一些數據,直到我的下一個請求。 我最初的想法是創建一個包含hyper::Chunk的結構和從Chunk借用的反序列化數據,但是無法使生命周期正確。 我嘗試使用租賃箱 ,但我也無法使用它。 也許我在宣布緩 ...

如何使用 OpenCL 以零拷貝直接寫入 linux 幀緩沖區?

[英]How to use OpenCL to write directly to linux framebuffer with zero-copy?

我正在使用 OpenCL 進行一些圖像處理,並希望使用它來將 RGBA 圖像直接寫入幀緩沖區。 工作流程如下圖所示: 1) 將幀緩沖區映射到用戶空間。 2) 使用帶有“CL_MEM_ALLOC_HOST_PTR”標志的 clCreateBuffer 創建 OpenCL 緩沖區 3) 使用 ...

如何引用數組的一部分?

[英]how to refer part of an array?

給定一個對象byte[] ,當我們要使用該對象進行操作時,經常需要它的一部分。 在我的特定示例中,我從線路獲取byte[] ,其中前4個字節描述了消息的長度,然后另外4個字節描述了消息的類型(一個映射到具體protobuf類的整數),然后剩余的byte[]是消息的實際內容... 像這樣 ...

如何在POSIX中實現零拷貝機制?

[英]How can I achieve zero copy mechanism in POSIX?

我想在兩個進程本地/網絡之間共享/傳輸數據。 通用IPC機制共享內存和消息隊列可用於傳輸數據。 但這些機制涉及多個副本。 我遇到了零復制機制,這減少了CPU上的復制開銷。 Linux使用sendfile和splice支持這一點。 這些API不在POSIX中。 如何僅使用POSIX ...


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