1 Star 0 Fork 0

CN_ChangGeng/UniversalModule

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CanAppWrite.cs 4.00 KB
一键复制 编辑 原始数据 按行查看 历史
CN_ChangGeng 提交于 2025-06-10 08:56 +08:00 . CANLink版本更新(4.2.0.1)
using System;
using System.Text;
namespace CanLink
{
/// <summary>
/// 应用程序类
/// </summary>
public class CanAppWrite
{
private readonly CanService _canService;
public CanAppWrite(CanService canService)
{
_canService = canService;
}
/// <summary>
/// 打印性能统计信息
/// </summary>
private void PrintPerformanceStats()
{
if (_canService == null) return;
var readingStats = _canService.GetReadingStatistics();
var sendingStats = _canService.GetSendingStatistics();
var channel0Stats = _canService.GetChannelStatistics(0);
var channel1Stats = _canService.GetChannelStatistics(1);
var sb = new StringBuilder();
sb.AppendLine("\n========== CAN通讯性能统计(独立线程读取架构)==========");
// 读取统计
sb.AppendLine($"📖 数据读取统计:");
sb.AppendLine($" - 总读取消息数: {readingStats.TotalMessages:N0}");
sb.AppendLine($" - 总读取周期数: {readingStats.TotalCycles:N0}");
sb.AppendLine($" - 平均每周期消息数: {readingStats.AverageMessagesPerCycle:F2}");
sb.AppendLine($" - 读取架构: 独立双线程并行读取");
// 发送统计
sb.AppendLine($"\n📤 数据发送统计:");
sb.AppendLine($" - 总发送消息数: {sendingStats.TotalMessages:N0}");
sb.AppendLine($" - 总发送周期数: {sendingStats.TotalCycles:N0}");
sb.AppendLine($" - 平均每周期消息数: {sendingStats.AverageMessagesPerCycle:F2}");
// 通道0分发器统计
sb.AppendLine($"\n🔄 通道0分发器统计:");
sb.AppendLine($" - 队列当前长度: {channel0Stats.QueueCount}");
sb.AppendLine($" - 运行状态: {(channel0Stats.IsRunning ? "运行中" : "已停止")}");
sb.AppendLine($" - 已处理消息数: {channel0Stats.ProcessedMessages:N0}");
sb.AppendLine($" - 丢弃消息数: {channel0Stats.DroppedMessages:N0}");
// 通道1分发器统计
sb.AppendLine($"\n🔄 通道1分发器统计:");
sb.AppendLine($" - 队列当前长度: {channel1Stats.QueueCount}");
sb.AppendLine($" - 运行状态: {(channel1Stats.IsRunning ? "运行中" : "已停止")}");
sb.AppendLine($" - 已处理消息数: {channel1Stats.ProcessedMessages:N0}");
sb.AppendLine($" - 丢弃消息数: {channel1Stats.DroppedMessages:N0}");
// 架构优势说明
sb.AppendLine($"\n🚀 独立线程读取架构优势:");
sb.AppendLine($" ✅ 真正的并行读取:通道0和通道1独立线程同时读取");
sb.AppendLine($" ✅ 无阻塞干扰:单一通道阻塞不影响其他通道");
sb.AppendLine($" ✅ 最大化吞吐量:充分利用多核CPU并行处理能力");
sb.AppendLine($" ✅ 降低延迟:每个通道独立队列和处理线程");
var totalProcessedMessages = channel0Stats.ProcessedMessages + channel1Stats.ProcessedMessages;
var totalDroppedMessages = channel0Stats.DroppedMessages + channel1Stats.DroppedMessages;
var processingRate = totalProcessedMessages > 0
? (double)totalProcessedMessages / (totalProcessedMessages + totalDroppedMessages) * 100
: 100.0;
sb.AppendLine($"\n📊 整体处理效率:");
sb.AppendLine($" - 总处理消息数: {totalProcessedMessages:N0}");
sb.AppendLine($" - 总丢弃消息数: {totalDroppedMessages:N0}");
sb.AppendLine($" - 处理成功率: {processingRate:F2}%");
sb.AppendLine("================================================");
Console.WriteLine(sb.ToString());
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ChangGengCN/UniversalModule.git
git@gitee.com:ChangGengCN/UniversalModule.git
ChangGengCN
UniversalModule
UniversalModule
master

搜索帮助