在任何逻辑中测量汇编程序中的时间,问题澄清
Posted
技术标签:
【中文标题】在任何逻辑中测量汇编程序中的时间,问题澄清【英文标题】:Measuring time in assembler in anylogic, question clarification 【发布时间】:2021-03-02 09:01:20 【问题描述】:我试图在 anylogic 中的汇编器中获取时间,我可以为服务使用 measuretimestart/end 功能,并且可以获取分布图,但是当我尝试使用以下代码为汇编器获取时间时:输入 3: Time=time(); 退出时: timeDS.add(time()-Time);平均值对我来说没有意义。在这个阶段我真的不知道是什么元素在软件中提供了真实的信息。 我正在测试每个块有 10 周的延迟时间,并且队列中没有延迟,甚至删除了 selectOutput 函数。到达率是每月 1 次,触发了每次注入 1 个元素的调用,但我每次都弄湿这种无意义的意思,在这种特殊情况下是否有任何代码可以使用,或者我如何让分布正确? 谢谢! enter image description here
【问题讨论】:
是的,这回答了我的问题。 【参考方案1】:您要测量什么:组装发生所需的时间?从组装的第一部分到达的那一刻到组装发生所花费的时间?此答案仅与延迟时间相关。
时间似乎是一个全局变量,因此如果同时发生多个程序集,您的结果将会失真,因为每次程序集启动时时间变量都会发生变化...
此外,on enter 3 并不是定义组装过程开始的时刻。而是使用“on enter delay”操作
您需要定义一个代理类型,它将在汇编器的输出中并为其分配一个时间变量,然后在“输入延迟”上您可以执行 agent.startTime=time() 和“在退出时打开”你可以做“data.add(time()-agent.startTime)
【讨论】:
您好,感谢您的回答,我已经做了几次测试,用这段代码测量的时间与用这段代码测量的时间完全不同 您好,感谢您的回答!是的!我想知道组装需要多长时间?,我已经做了几次测试,用这段代码测量的时间与使用 timemeasurestart/end 功能制作的时间完全不同,看起来更精确,问题是我不知道从哪里获取总和数据,总和数据总是大于代码使用的数据,我认为时间测量功能是一种累积步骤或记录,而仅在一段代码中计算块中的那些,这就是平均值如此不同的原因。 yoru timemeasure 块的位置与您在组件上的计算无关..您正在将橘子与苹果进行比较...您的 timemeasure 正在计算服务块中的时间...为什么要它们类似于您的组装块..您在这里要求的内容没有意义 您好,完全同意您的观点!我注意到最大值与我在服务和汇编程序块中设置的时间延迟相似或相等,因此,这意味着代码反映了时间我正在设置,平均值是在最小值 0 和记录的最大值之间计算的,所以我想知道在哪里或如何设置以避免从 0 到 1 或类似的读数并开始从或可能从我在块的时间延迟中使用的分布中设置的最小值读取。 你好,很抱歉读到这个,嗯,是的,我真的很困惑如何使用这个软件,但说明我的背景不是计算机科学,而且我真的没有任何数据集为了评估我的结果,我只是试图模拟一个办公室,三个工程师同时接收请求,其中两个独立工作,第三个需要前面的两个任务来组装自己的任务。我需要添加某种检查点来拒绝一些将返回给工程师的任务,我需要知道的是工程师需要多少时间来完成它的任务。以上是关于在任何逻辑中测量汇编程序中的时间,问题澄清的主要内容,如果未能解决你的问题,请参考以下文章
如何测量在 Maya、Creo Parametric、Adobe Premier 等应用程序中执行任何类型的操作所花费的时间