代码拉取完成,页面将自动刷新
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());
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。