Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 监控过程的最优数据存储方案_C++_Api_Charts_Monitoring_Simulation - Fatal编程技术网

C++ 监控过程的最优数据存储方案

C++ 监控过程的最优数据存储方案,c++,api,charts,monitoring,simulation,C++,Api,Charts,Monitoring,Simulation,我想监控一个商业软件包中的模拟过程。商业软件提供了C API接口,该接口具有一个进程的初始化回调函数以及一个在模拟进程的每个步骤执行的回调函数。在每一步中,我都要监控/绘制回调函数中可用的大约10个浮点值。我计划使用LightningChart等绘图工具来监视和查看值。在更新图表的过程中,我将使用C++/CLI包装器在每个步骤中调用.NET图表库 我已经创建了一个简单的dll,利用API回调函数将值输出到一个文本文件中,完成后在其中执行绘图和分析。虽然我的目标是实时查看数据 我的问题是,如何在模

我想监控一个商业软件包中的模拟过程。商业软件提供了C API接口,该接口具有一个进程的初始化回调函数以及一个在模拟进程的每个步骤执行的回调函数。在每一步中,我都要监控/绘制回调函数中可用的大约10个浮点值。我计划使用LightningChart等绘图工具来监视和查看值。在更新图表的过程中,我将使用C++/CLI包装器在每个步骤中调用.NET图表库

我已经创建了一个简单的dll,利用API回调函数将值输出到一个文本文件中,完成后在其中执行绘图和分析。虽然我的目标是实时查看数据


我的问题是,如何在模拟过程初始化回调中调用一个表单,该表单在整个过程中保持持久性,并且可以在每一步进行更新。此外,理想的数据结构是什么,以存储也将是持久的过程参数值?当使用C++将数据值写入回调函数的文本文件时,我的I7处理器的速度大约为每秒1700步。在不使用API和回调函数存储数据的情况下,模拟速度约为每秒4000步。很明显,我希望在绘制实时数据图表时,速度会大大减慢,这是可以接受的。有什么想法吗?

当您打算绘制实时数据图表时,我建议您使用内存映射文件在模拟过程和回调函数之间共享数据。这将比在物理文件上执行I/O操作更快,并且您将能够共享数据。 在初始化函数中,您可以创建表单,并使用内存映射文件从回调更新表单上的值。下面是一些关于内存映射文件的链接

好建议。我做了一些研究,我认为这将是伟大的工作!尽管在API回调结束后,如何保持图表更新的C#进程运行?谢谢你的帮助。很高兴能帮上忙。请回答您的问题,ui应该在单独的线程中创建,并从回调更新为。