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

根据网站软件做报告做网页设计一个月能挣多少

根据网站软件做报告,做网页设计一个月能挣多少,各网站文风,哈尔滨网站建设公司哪家好文章目录 0. 引言1. Nanomsg简介1.1 可扩展性协议类型1.2 支持的传输机制1.3 NanoMsg 架构与实现 2. PUB-SUB 模式基准测试 0. 引言 Nanomsg 作为一款高性能的通信库,支持多种消息传递模式,其中包括 PUB-SUB(发布-订阅)。 本篇文…

文章目录

    • 0. 引言
    • 1. Nanomsg简介
      • 1.1 可扩展性协议类型
      • 1.2 支持的传输机制
      • 1.3 NanoMsg 架构与实现
    • 2. PUB-SUB 模式基准测试

0. 引言

Nanomsg 作为一款高性能的通信库,支持多种消息传递模式,其中包括 PUB-SUB(发布-订阅)。
本篇文章将介绍如何使用 NanoMsg 库来实现一个简单的 PUB-SUB 模式的基准测试程序,该程序能够测量消息从发布到订阅的平均延迟。

扩展阅读:开源库Nanomsg和Iceoryx发布订阅模式的性能对比

1. Nanomsg简介

1.1 可扩展性协议类型

NanoMsg 提供了以下几种通信模式:

  • PAIR:简单的点对点通信。
  • BUS:多对多的通信。
  • REQREP:请求-响应模式,适合构建无状态的集群。
  • PUBSUB:发布-订阅模式,将消息分发给订阅者。
  • PIPELINE:汇聚来自多个源的消息,并在多个目标之间进行负载均衡。
  • SURVEY:允许一次性查询多个应用程序的状态。

1.2 支持的传输机制

NanoMsg 支持以下传输机制:

  • INPROC:进程内的传输(线程、模块等之间)。
  • IPC:同一台机器上的进程间传输。
  • TCP:通过 TCP 网络传输。

1.3 NanoMsg 架构与实现

NanoMsg 的代码架构清晰,主要分为以下几个模块:

  • nn.h:对外暴露的 API 接口。
  • transport.h:通信层定义,允许用户实现扩展。
  • protocol.h:协议层定义,用户可以根据需要实现扩展。
  • utils:实用工具包,包括基本的数据结构、互斥锁和原子操作等。
  • transports:通信层实现,包括 inproc、ipc 和 tcp 通信。
  • protocols:协议层实现,包括 REQREP、PUBSUB 等。
  • core:通用代码。
  • aio:线程池模拟的异步操作,带有状态机的事件驱动模型。

2. PUB-SUB 模式基准测试

为了进一步展示 Nanomsg 在实际应用中的效果,这里提供了一个简单的 PUB-SUB 模式的基准测试程序。该程序可以测量消息从发布到订阅的平均延迟。

// pub_sub_benchmark.cpp
#include <nanomsg/nn.h>
#include <nanomsg/pubsub.h>
#include <iostream>
#include <thread>
#include <chrono>
#include <vector>
#include <numeric>using namespace std::chrono;const char* URL = "ipc:///tmp/pubsub.ipc";
const int NUM_MESSAGES = 10000;
const int MESSAGE_SIZE = 128;void publisher() {int sock = nn_socket(AF_SP, NN_PUB);nn_bind(sock, URL);char message[MESSAGE_SIZE] = "Benchmark message";std::this_thread::sleep_for(seconds(1)); // Wait for subscribers to connectfor (int i = 0; i < NUM_MESSAGES; ++i) {int bytes = nn_send(sock, message, MESSAGE_SIZE, 0);if (bytes < 0) {std::cerr << "Error sending message: " << nn_strerror(nn_errno()) << std::endl;return;}std::this_thread::sleep_for(microseconds(100)); // Throttle messages}nn_close(sock);
}void subscriber(std::vector<duration<double, std::micro>>& latencies) {int sock = nn_socket(AF_SP, NN_SUB);nn_connect(sock, URL);nn_setsockopt(sock, NN_SUB, NN_SUB_SUBSCRIBE, "", 0);char* buf = nullptr;for (int i = 0; i < NUM_MESSAGES; ++i) {auto start = high_resolution_clock::now();int bytes = nn_recv(sock, &buf, NN_MSG, 0);auto end = high_resolution_clock::now();if (bytes < 0) {std::cerr << "Error receiving message: " << nn_strerror(nn_errno()) << std::endl;nn_freemsg(buf);return;}latencies.push_back(end - start);nn_freemsg(buf);}nn_close(sock);
}int main() {std::vector<duration<double, std::micro>> latencies;std::thread pub_thread(publisher);std::thread sub_thread(subscriber, std::ref(latencies));pub_thread.join();sub_thread.join();if (!latencies.empty()) {double total_latency = std::accumulate(latencies.begin(), latencies.end(), 0.0,[](double sum, const duration<double, std::micro>& d) { return sum + d.count(); });double avg_latency = total_latency / latencies.size();std::cout << "Average latency: " << avg_latency << " microseconds" << std::endl;}return 0;
}

执行结果:
本文测试机的硬件信息请查看 python或者shell获取系统信息
在这里插入图片描述
平均延迟是7.8ms

http://www.wangmingla.cn/news/138415.html

相关文章:

  • 宁波网站关键词优化模型
  • 企业开发网站公司最新新闻事件今天疫情
  • vps做vpn svn和网站百度云登陆首页
  • 设计网站平台风格百度查一下
  • 怎么做网站?市场调研公司排名
  • 什么类型的产品可以做网站出口北京营销公司比较好的
  • 黄石市城乡建设网站免费网络推广网址
  • 口碑好的江苏网站建设广州seo服务外包
  • 网站上微信的链接怎么做直播代运营公司
  • 长鳖春遇网站开发seo含义
  • 昭通商城网站建设谷粉搜索谷歌搜索
  • 用阿里云做网站注意事项湖南中高风险地区
  • 工程项目管理软件哪个好seo基础篇
  • iis 5.1 新建网站网络营销推广渠道有哪些
  • 山西疫情严重吗现在seo外链工具有用吗
  • 网络推广及网站建设合作协议1元购买域名
  • 哪一家网站做简历注册城乡规划师
  • wordpress rpc利用 扫描湖北seo推广
  • 扁平化网站登录界面网络推广计划制定步骤
  • 建筑公司网站被投诉违反广告法抖音账号权重查询
  • 太月星网站建设程序开发网页设计品牌广告语经典100条
  • 西安专业网站制作郑州网络公司
  • 国外网站 设计百度网盘云资源搜索引擎
  • 福州医院网站建设公司seo诊断a5
  • 网站优化如何做软文代理平台
  • 做代购可以在哪些网站上线上广告投放方式
  • 网站内链建设北京seo结算
  • 网上注册公司什么网站app拉新佣金排行榜
  • 网站图片最大尺寸无锡网络优化推广公司
  • 江苏兴力建设集团有限公司网站互联网域名交易中心