当前位置: 首页 > news >正文

有什么可以做翻译的网站如何看出网站用dede做的

有什么可以做翻译的网站,如何看出网站用dede做的,网站开发 避免 字段变化 代码,网站模板自建站Linux笔记之使用系统调用sendfile高速拷贝文件 code review! 文章目录 Linux笔记之使用系统调用sendfile高速拷贝文件sendfile 性能优势sendfile 系统调用优点:缺点: cp 命令优点:缺点: 实际测试:拷贝5.8个G的文件&a…

Linux笔记之使用系统调用sendfile高速拷贝文件

code review!

文章目录

  • Linux笔记之使用系统调用sendfile高速拷贝文件
    • `sendfile` 性能优势
    • `sendfile` 系统调用
      • 优点:
      • 缺点:
    • `cp` 命令
      • 优点:
      • 缺点:
    • 实际测试:拷贝5.8个G的文件,cp使用25s,sendfile只用7.49s,快了四倍

sendfile 系统调用是 Linux 特有的函数,用于在两个文件描述符之间直接传输数据。这可以减少用户态和内核态之间的数据拷贝,从而提高文件拷贝的性能。sendfile 通常比使用普通的 readwrite 系统调用更快,尤其是在处理大文件时。

sendfile 性能优势

  1. 减少数据拷贝sendfile 在内核内直接把数据从一个文件描述符传输到另一个文件描述符,而不需要将数据从内核态拷贝到用户态再拷贝回内核态。
  2. 减少系统调用的开销:对于大文件拷贝,sendfile 只需要一次系统调用,而传统方法可能需要多次 readwrite 调用。
  3. 更少的上下文切换:由于减少了系统调用次数,sendfile 也减少了用户态和内核态之间的上下文切换。

sendfile 系统调用

sendfile 它主要用于网络传输,但也可以用于文件复制。sendfile 的设计目的是减少数据复制的次数,从而提高性能。

优点:

  1. 减少上下文切换: sendfile 可以直接在内核空间处理数据传输,避免了用户空间和内核空间之间的上下文切换。
  2. 高效: 它可以减少内存拷贝的次数,因为数据不需要从内核空间拷贝到用户空间再回到内核空间。
  3. 适合大文件传输: 对于大文件传输,sendfile 可以显著减少 CPU 占用和提高传输速度。

缺点:

  1. 灵活性较低: sendfile 主要用于文件描述符之间的传输,不如一些用户空间的工具灵活。
  2. 依赖于内核版本: sendfile 的性能和功能可能会受到内核版本的影响。

cp 命令

cp 是一个用户空间工具,用于复制文件和目录。它使用标准的文件 I/O 操作来实现文件复制。

优点:

  1. 易用性: cp 命令简单易用,支持各种选项,可以处理复杂的文件复制需求。
  2. 广泛支持: 几乎所有的 Unix/Linux 系统都支持 cp 命令,且不依赖于特定的内核版本。
  3. 灵活: cp 命令支持递归复制、保留文件属性等多种操作。

缺点:

  1. 性能较低: 由于 cp 命令在用户空间运行,涉及多次上下文切换和内存拷贝,性能可能不如 sendfile
  2. 高 CPU 使用率: 对于大文件复制,cp 命令可能会占用较高的 CPU 资源。

实际测试:拷贝5.8个G的文件,cp使用25s,sendfile只用7.49s,快了四倍

在这里插入图片描述

代码

#include <sys/sendfile.h>
#include <fcntl.h>
#include <unistd.h>
#include <iostream>
#include <chrono>
#include <sys/stat.h>bool copyFileSendfile(const std::string& src, const std::string& dest) {int source = open(src.c_str(), O_RDONLY);int destination = open(dest.c_str(), O_WRONLY | O_CREAT | O_TRUNC, 0644);if (source < 0 || destination < 0) {std::cerr << "Error opening files!" << std::endl;return false;}struct stat stat_buf;fstat(source, &stat_buf);off_t offset = 0;auto start = std::chrono::high_resolution_clock::now();if (sendfile(destination, source, &offset, stat_buf.st_size) == -1) {std::cerr << "Error using sendfile!" << std::endl;close(source);close(destination);return false;}auto end = std::chrono::high_resolution_clock::now();close(source);close(destination);std::chrono::duration<double> duration = end - start;std::cout << "Sendfile copy took " << duration.count() << " seconds" << std::endl;return true;
}int main(int argc, char* argv[]) {if (argc != 3) {std::cerr << "Usage: " << argv[0] << " <source_file> <destination_file>" << std::endl;return 1;}std::string sourceFile = argv[1];std::string destinationFile = argv[2];if (copyFileSendfile(sourceFile, destinationFile)) {std::cout << "File copied successfully!" << std::endl;} else {std::cerr << "File copy failed!" << std::endl;return 1;}return 0;
}

编译

g++ main.cpp -o main
http://www.yayakq.cn/news/950846/

相关文章:

  • 海口网站建设优化元谋县建设局网站
  • 苏州企业门户网站一级做ae视频直播可以吗多少钱
  • dede企业网站模板云南建网站的公司
  • 企业网站网页布局自己做的网站 jen
  • 网站上传工具wordpress使用的爬虫
  • 百度地图手机网站开发校友网站建设的意义
  • 丰城网站建设公司iis添加网站的物理路径
  • 网站建设saas昆明小程序开发公司电话
  • 深圳网站ui设计网线制作顺序
  • 十三五关于网站建设wordpress主题lightsns
  • 最佳wordpress主机重庆seo技术博客
  • 追波设计网站淘宝怎么开店铺卖货
  • 炫酷网站建设dede做英文网站优化
  • 做网站要求什么条件八戒logo设计网
  • 宿迁网站优化排名wordpress静态化插件下载
  • 网站备案 教程网站服务器租用一年多少钱啊
  • 廊坊做网站做彩票网站代理赚钱吗
  • 网站如何取消验证码数控技术是学什么
  • 网站制作行业越来越难做在哪里可以学做网站
  • 机场建设管理投资有限责任公司网站vue和react可以做pc网站吗
  • 做网站有哪些行业宁波网站建设官网
  • 免费自己制作网站方法最近发生的国际新闻
  • 建设网站哪家强如何提供网站建设公司
  • 检索类的网站建设网络营销是一种营销方式
  • 创业做网站需要哪些必备条件福田公司全称
  • 内蒙营销型网站建设百度注册
  • 阜宁网站制作服务旅游网站建设答辩ppt模板
  • 58同城网站建设问题wordpress 2.0 下载地址
  • 棋牌类网站怎么做个人网站备案麻烦
  • 网站策划书格式网站的软件维护包括什么