`
idning
  • 浏览: 139460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

splice性能测试

阅读更多

linux 下测试了一下splice copy的性能:

 

似乎一般的读,效果更好??

注意每次拷贝以前要rm data

[ning@leap splice_test]$ time ./splice_copy from_data  data 1024

real    0m7.795s
user    0m0.000s
sys     0m4.790s


[ning@leap splice_test]$ time ./rw_copy from_data  data 1024
real    0m7.044s
user    0m0.000s
sys     0m2.351s


[ning@leap splice_test]$ time cp from_data data

real    0m6.879s
user    0m0.000s
sys     0m2.849s

[ning@leap splice_test]$ time dd if=from_data of=data
1978384+1 records in
1978384+1 records out
1012933100 bytes (1.0 GB) copied, 9.35868 seconds, 108 MB/s

real    0m9.360s
user    0m0.000s
sys     0m8.421s



环境:

cpu
8核8g内存
每个核:
Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
cpu MHz         : 2499.613
cache size      : 6144 KB
mem
MemTotal:        8169020 kB
MemFree:         2376992 kB
Buffers:           15508 kB
Cached:           136296 kB

Linux leap 2.6.23 #2 SMP Fri Oct 9 21:38:13 CST 2009 x86_64 x86_64 x86_64 GNU/Linux

测试代码见附件~


最初对splice的用法来自与:linux test project
http://ltp.cvs.sourceforge.net/

另外,这位(http://lkml.org/lkml/2006/11/16/162)仁兄也说splice的效果没有他想象的那么好,他那里有源代码,不过我没有编译成功。。

这里是linus的讨论: http://kerneltrap.org/node/6505
这里是对应的man page: http://www.kernel.org/doc/man-pages/online/pages/man2/splice.2.html

实验过程中,发现splice使用的pipe有限制:64K -看来不能改了。。
/usr/src/linux/include/linux/pipe_fs_i.h
#define PIPE_BUFFERS (16)  

0
0
分享到:
评论

相关推荐

    硬件性能测试工具fio.tar.gz

    fio 是一个 I/O 工具用来对硬件进行压力测试和验证,支持 13 种不同的 I/O 引擎,包括:sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等,I/O priorities (for newer ...

    JS常用的几种数组遍历方式以及性能分析对比实例详解

    在进行性能测试时,应确保在无其他操作的环境下进行,例如文中提到的仅进行空循环,以便准确评估遍历操作本身的时间消耗。测试结果可能因浏览器版本、环境等因素而异,因此在实际应用中,应根据具体场景选择合适的...

    Go-ZSocket是LinuxZero-copysockets的一个Golang封装库

    因此,在使用Go-ZSocket时,需要根据实际需求进行性能测试和优化。 3. **并发与同步**: Go语言以其高效的并发模型著称,使用Goroutine和Channel可以轻松地实现多任务并行。在使用Go-ZSocket进行网络编程时,理解...

    浅谈使用splice函数对数组中的元素进行删除时的注意事项

    尽管`splice()`和`filter()`都可以完成删除任务,但在性能上,`splice()`通常更快,因为它直接修改原始数组。然而,`filter()`提供了更好的可读性和维护性。在性能不是关键因素的情况下,推荐使用`filter()`。 ### ...

    Linux使用FIO测试磁盘的IOPS1

    Linux 使用 FIO 测试磁盘IOPS是一种评估存储性能的重要方法。FIO,全称 Flexible I/O Tester,是一个强大的 I/O 负载生成器,适用于各种存储设备的压力测试和性能基准测试。以下是对FIO及其使用的详细说明: **1. ...

    OTDR常见测试曲线

    通过观察OTDR生成的测试曲线,我们可以深入了解光纤的性能状态。以下是对OTDR常见测试曲线的详细解析: 1、正常曲线 正常情况下,OTDR的测试曲线呈现出斜率递增的形状,A区域为盲区,即OTDR无法探测到的起始部分。B...

    硬盘测试工具fio源码文件

    fio 是一个 I/O 工具用来对硬件进行压力测试和验证,支持 13 种不同的 I/O 引擎,包括:sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等,I/O priorities (for newer ...

    硬盘测试工具FIO测试方法培训.docx

    FIO(Flexible I/O Tester)是一款在Linux环境下广泛使用的磁盘性能测试工具。该工具能够帮助用户进行硬件的压力测试与性能验证,尤其适用于SSD等高性能存储设备。FIO支持13种不同的I/O引擎,例如sync、mmap、libaio...

    Linux IOPS测试文档

    FIO 是一个功能强大且灵活的测试工具,支持 13 种不同的 I/O 引擎,包括 sync、mmap、libaio、posixaio、SG v3、splice、null、network、syslet、guasi 和 solarisaio 等。 FIO 的安装非常简单,用户只需下载 FIO ...

    Linux高性能服务器编程

    第三部分从侧重实战的角度讲解了高性能服务器的优化与监测,包含服务器的调制、调试和测试,以及各种实用系统监测工具的使用等内容。本书另外免费赠送一个负载均衡服务器程序的完整实际项目的源代码!作者简介游 双...

    fio-readthfdasf

    标题中的“fio”指的是Flexible I/O Tester,这是一款用于存储子系统性能测试的工具,广泛应用于硬盘驱动器、固态硬盘、RAID阵列、网络存储等设备的性能测试。在IT行业中,对存储设备的性能评估至关重要,而fio可以...

    javascript中数组删除指定的元素的代码示例

    在JavaScript编程中,处理数组是日常开发中的一个基本任务。数组是一种数据结构,可以存储有序的元素...同时,在实际应用中,还需考虑性能优化,特别是当数组的规模较大或删除操作频繁时,应优先考虑不影响性能的方法。

    详解JS几种变量交换方式以及性能分析对比

    通过eval函数来实现变量交换,但使用eval存在严重的安全风险,且实际性能测试结果表明其效率很低,不推荐在生产环境中使用。 9. 利用splice交换数组中的两个元素 当涉及到数组元素的交换时,可以通过splice方法来...

    window版本 FIO工具及使用示例

    FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet,guasi, solarisaio 等等。目前windows版本的fio...

    JavaScript 高性能数组去重的方法

    本文将深入探讨多种JavaScript数组去重的方法,并对其性能进行测试比较。 首先,通常会使用的去重方法包括Array.filter()结合indexOf()。这种方法简单易懂,通过拼接数组并使用filter()遍历,同时使用indexOf()来...

    javascript 数组内存释放

    然而,随着程序运行,可能会产生大量的数组对象,如果不正确地管理它们,可能导致内存泄漏,影响程序性能。本篇文章将深入探讨JavaScript数组的内存释放机制,以及如何有效地管理数组内存。 首先,理解JavaScript的...

    js删除数组中指定元素

    选择哪种方法取决于具体需求,如性能、代码可读性和是否需要保留原数组等。 总结,JavaScript提供了灵活的方式来处理数组中的元素,无论是`splice()`还是`filter()`,都能有效地帮助开发者实现删除指定元素的需求。...

    高级服务器设计和实现(架构、手段与工具箱)_PPT.pdf

    测试工具是保证服务器质量的关键,Tsung和LoadRunner用于压力和性能测试,Luasocket则用于收集性能数据。日志系统是诊断问题和监控系统状态的重要手段,如log4X可以提供结构化的日志记录。此外,Wireshark用于网络...

    Vue不能检测到Object/Array更新的情况的解决

    Vue无法检测到Object/Array更新的情况的解决 Vue是一个功能强大的前端框架,但是在实际开发中,我们可能会遇到一些意外的问题,例如Vue无法检测到Object/Array更新的情况。今天,我们将讨论这个问题的解决方案。 ...

Global site tag (gtag.js) - Google Analytics