MT5和速度在行动 - 页 75 1...686970717273747576777879808182...94 新评论 Roman 2020.11.07 16:02 #741 Valeriy Yastremskiy:我不是图表方面的专家。重要性是由其他任务的开始对当前任务的结束的依赖性决定的,其他标准是次要的,但也有任务执行时间。一般来说,这是很困难的,而且最可悲的是,优先次序的算法不能临时改变。从好的方面看,在出现任何问题之前,我希望开发商能做出一些澄清。这很复杂,但这是环境发展中的正确目标。 摘自对实时系统中如何工作的描述。 通常情况下,优先级是动态的,这意味着它们可以在运行时由进程本身以及操作系统改变。 对中断的响应与CPU密集型计算分开。 一旦有事件或中断发生,其处理程序就会立即被列入准备好的进程队列中。 中断处理程序通常很紧凑,因为它们必须提供快速响应,,例如输入新的数据,并将控制权转移到以较低优先级执行的更复杂的CPU密集型进程。 Nikolai Semko 2020.11.07 16:05 #742 Roman:你好,尼古拉。这倒是真的。 但是,不会出现与斯拉瓦谈到的同步化相同的问题吗,即不合理的刹车。 或者也许没有问题?))也许不使用异步模型比用优先级同步更容易?)) 你好。 我不是异步和中断方面的专家,虽然我有一些知识和经验。 计时器的问题应该完全没有问题。由于序列并不重要,重要的是周期性。 此外,根据我的理解,定时器是基于系统硬件中断的,这其实并不重要,因为老板负责资源分配。 我认为整个异步控制系统是用硬件中断来实现的,包括来自定时器的中断。,我还是想知道中断本身的资源消耗有多大。例如,一个系统中断来自CPU定时器,执行一个全局变量 的增量。这个增量本身将花费系统大约1纳秒。但是。 保存恢复工作所需的所有运行进程和/或线程的参数需要多长时间? 这种节省是由硬件还是软件完成的? 恢复过程需要多长时间? 我们可以衡量这种资源密集度吗?可能不会,因为你怎么能抓住中断的时机呢? 这些资源成本的顺序是什么--几十、几百纳秒、微秒还是几十和几百微秒?如果能得到这样的信息,那就很有意思了。 一般来说,我意识到我缺乏知识和经验。这就是为什么我尽量不与开发人员讨论关于异步优先级的问题。我明白,在试图创建一个完美的系统时,有很多细微的差别、陷阱和障碍,特别是当涉及到交易订单和获得交易信息时。,尽管说实话,我仍然不明白为什么他们在5中把一些功能变成异步的,这是一个很大的不便。我是指ChartGet...,ChartTimePriceToXY,ChartXYToTimePrice。 毕竟,合乎逻辑的是,图表状态表的填充应该是异步的,而命令应该只从这个表中读取数据。而且,如果读取时的数据有几毫秒的误差,那也不是问题。问题是,在追求想象中的数据相关性时,会出现几十毫秒的滞后,在此期间,如果最初这些命令不是异步的,而是简单地读取图表状态表的最后已知数据,那么提取的相关性就会在更大程度上变得不相关。 而从执行时间来看,这些函数在4中并不是异步的。 Valeriy Yastremskiy 2020.11.07 16:30 #743 Roman:摘自对实时系统中如何工作的描述。通常情况下,优先级是动态的,这意味着在运行时它们可以被进程本身以及操作系统所改变。 对中断的反应与CPU密集型计算分开。 一旦有事件或中断发生,其处理程序就会立即被列入准备好的进程队列中。 中断处理程序通常很紧凑,因为它们需要提供快速响应,,例如输入新数据,并将控制权传递给以较低优先级执行的更复杂的处理器密集型进程。 正如我所描述的那样))))当然,优先级逻辑是动态的。而这就是设置级别的难度。通过设置优先级别,我们无法确定其在下面环境的动态优先级逻辑中的执行时间。终端总是在wine或linux环境之上,无法影响下面环境的优先级逻辑。 Roman 2020.11.07 17:16 #744 Nikolai Semko: 并非所有提出的问题都被认为会得到回答。 中断本身的资源密集度如何。 最有可能的是取决于处理器的频率。 该过程需要多长时间来保存,以便进一步恢复。 根据基于量化的算法,如果出现以下情况,活动过程就会改变。 该进程已终止并离开系统 发生错误 进程已被切换到待机状态 进程已经用完了一定量的处理器时间,而 如何抓住中断的机会。 预分频器 是一个时钟分频器,作为一个或多个串联的T型触发器。 Renat Fatkhullin 2020.11.07 18:38 #745 Roman:不是所有提出的问题都应该得到回答。 去研究这个问题(至少10年),请不要在这个主题上乱扔垃圾。 这里讨论的问题是不同的培训和不同的班级。 Igor Makanu 2020.11.07 19:01 #746 Nikolai Semko: 保存恢复操作所需的所有运行进程和/或线程的参数需要多长时间? 这种节省是由硬件还是软件完成的? 从286处理器开始就没有什么事情发生了吗? 我不记得了,也从来没有理解过,但是从Pentium-1开始(我读过一本关于它的书,但是很久以前)。 每个处理器都有分配的虚拟内存;内存组(RAM单元)的物理地址被处理器本身翻译成虚拟地址(或者说反过来? 我不记得了,但似乎是一个特殊的寄存器和一个指向地址转换表的虚拟指针)。这是硬件发生的一切,它是不可测量的,它是所谓的处理器核心,它区别于每一个英特尔处理器系列,它不是高速缓存!它是由硬件组成的。 尼古拉-森科。 恢复这个过程需要多长时间? Win系统上的任何程序都应该注册为一个进程,并至少创建一个线程。 然后Win任务调度器将为进程分配资源,并为其排队发送消息,调度器如何工作对我来说并不感兴趣,只需提高进程的优先级就足够了,可以看到,经过一些努力,PC开始计划,即微软为我的应用程序提供资源,这足以使操作系统继续运行。 Nikolai Semko: 是否有可能衡量这种资源强度?可能不会,因为我怎么能抓住中断的时机呢? 这些资源成本的顺序是什么--、几十、几百纳秒、微秒还是几十和几百微秒?如果能得到这样的信息,那就很有意思了。 中断是硬件,它是由操作系统处理的,当然是在驱动程序的帮助下。 计时器?- 如果我没记错的话,除非进程正在处理,否则定时器是不会堵塞消息队列的,这与操作系统的傻瓜式管理有关,谷歌WM_TIMER - 应该有详细说明 数字的顺序?只有处理器的时钟可以被测量,然后乘以处理器的计算系数,这里讨论过https://www.mql5.com/ru/forum/352454#comment_18588098 , 谷歌上有大量关于性能计量的信息。 Roman 2020.11.07 19:11 #747 Renat Fatkhullin:去研究这个问题吧(至少10年),不要在这个问题上乱扔垃圾,拜托。我们在这里以不同的训练和不同的阶层讨论问题。 每个人都应该被送到这里,而不是有选择地被送到这里))但像往常一样,谁问的问题够多,谁就会被踢到帽子上。 在我了解到处理程序是以阻塞模式执行后,我没有白白提出这个话题。 我触及了问题的真正症结,而你却不喜欢它。好吧,我放弃这个话题。 但我不明白在同步处理中实现及时事件的意义。 Slava, Nikolay, Valery 感谢你们的建设性对话。 Nikolai Semko 2020.11.07 20:44 #748 Igor Makanu:从286处理器开始就没有发生过吗?嗯,我不记得了,我也没有处理过这个问题,但肯定是从Pentium-1开始的(我读过一本关于这个问题的书,虽然是很久以前),这是硬件的全部,它是不可测量的,是所谓的处理器核心,它区别于每一个英特尔处理器系列,它不是缓存! 如果是这样就好了。 我认为是这样。几乎所有的东西都是在硬件层面。否则多线程就不会有那么高的效率。 Igor Makanu 2020.11.07 20:57 #749 Nikolai Semko:如果是这样就好了。 我认为是这样的。几乎所有的东西都是在硬件层面。否则多线程就不会那么有效。 只有这样 谷歌:处理器保护模式 如果我没有弄错的话,保护模式给了操作系统内核一个单独的权限级别,而且由于每个进程的虚拟内存--不可能得到正在运行的程序的RAM数据......好吧,除非你在调试器下作为一个单独的进程运行....,这是另一个专业领域))))。 但是,明确地说,一切都在硬件层面上工作,不可能测量它,只有操作系统工具 - 进程的虚拟内存切换是瞬间的,处理器本身在内部频率上工作 - CPU乘数...而如果你开始考虑缓存...为什么?- 有了问题,就要寻找解决方案!想写一个驱动程序吗?))) SZZ:你可以写一个驱动程序,我记得当我使用TCP-logger时,它被安装为一个驱动程序,并记录了所有的流量,然后在表中按进程显示所有的流量....。只有一件事,就是思考编写驱动程序将如何帮助开发有利可图的TCP ))))。 UPD: Hubr "什么是保护模式,它有什么作用"https://habr.com/ru/post/118881/ UPD: 硬件级别(CPU)的代码执行权限 -受保护的环 维基 fxsaber 2020.11.09 03:01 #750 Renat Fatkhullin:你总是能保证在任何 指令的随机单个样本上出现失败 ,包括最简单的汇编类型inc eax。这是架构上的原因,也是由于 "诚实地将数千个线程的时间量子分配给少数核心 "的物理限制。不要再犯傻了,继续捕捉每百万个请求中的单个异常值。 注意到CopyTicks很少滞后。我写了一个测试脚本 #include <fxsaber\Benchmark\Benchmark.mqh> // https://www.mql5.com/ru/code/31279 void OnTick() { Sleep(1000); MqlTick Tick[1]; _B(CopyTicks(_Symbol, Tick, COPY_TICKS_ALL, 0, 1), 100); _B(SymbolInfoTick(_Symbol, Tick[0]), 100); } 并在压力模式下运行它。SymbolInfoTick比CopyTicks有明显更多的警报。 没有投诉。我只想了解,是什么影响了这些功能的实现中对压力负荷的不同看法? 1...686970717273747576777879808182...94 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我不是图表方面的专家。重要性是由其他任务的开始对当前任务的结束的依赖性决定的,其他标准是次要的,但也有任务执行时间。一般来说,这是很困难的,而且最可悲的是,优先次序的算法不能临时改变。从好的方面看,在出现任何问题之前,我希望开发商能做出一些澄清。这很复杂,但这是环境发展中的正确目标。
摘自对实时系统中如何工作的描述。
通常情况下,优先级是动态的,这意味着它们可以在运行时由进程本身以及操作系统改变。
对中断的响应与CPU密集型计算分开。
一旦有事件或中断发生,其处理程序就会立即被列入准备好的进程队列中。
中断处理程序通常很紧凑,因为它们必须提供快速响应,
,例如输入新的数据,并将控制权转移到以较低优先级执行的更复杂的CPU密集型进程。
你好,尼古拉。这倒是真的。
但是,不会出现与斯拉瓦谈到的同步化相同的问题吗,即不合理的刹车。
或者也许没有问题?))也许不使用异步模型比用优先级同步更容易?))
你好。
我不是异步和中断方面的专家,虽然我有一些知识和经验。
计时器的问题应该完全没有问题。由于序列并不重要,重要的是周期性。
此外,根据我的理解,定时器是基于系统硬件中断的,这其实并不重要,因为老板负责资源分配。
我认为整个异步控制系统是用硬件中断来实现的,包括来自定时器的中断。
,我还是想知道中断本身的资源消耗有多大。例如,一个系统中断来自CPU定时器,执行一个全局变量 的增量。这个增量本身将花费系统大约1纳秒。但是。
一般来说,我意识到我缺乏知识和经验。这就是为什么我尽量不与开发人员讨论关于异步优先级的问题。我明白,在试图创建一个完美的系统时,有很多细微的差别、陷阱和障碍,特别是当涉及到交易订单和获得交易信息时。
,尽管说实话,我仍然不明白为什么他们在5中把一些功能变成异步的,这是一个很大的不便。我是指ChartGet...,ChartTimePriceToXY,ChartXYToTimePrice。
毕竟,合乎逻辑的是,图表状态表的填充应该是异步的,而命令应该只从这个表中读取数据。而且,如果读取时的数据有几毫秒的误差,那也不是问题。
问题是,在追求想象中的数据相关性时,会出现几十毫秒的滞后,在此期间,如果最初这些命令不是异步的,而是简单地读取图表状态表的最后已知数据,那么提取的相关性就会在更大程度上变得不相关。
而从执行时间来看,这些函数在4中并不是异步的。
摘自对实时系统中如何工作的描述。
通常情况下,优先级是动态的,这意味着在运行时它们可以被进程本身以及操作系统所改变。
对中断的反应与CPU密集型计算分开。
一旦有事件或中断发生,其处理程序就会立即被列入准备好的进程队列中。
中断处理程序通常很紧凑,因为它们需要提供快速响应,
,例如输入新数据,并将控制权传递给以较低优先级执行的更复杂的处理器密集型进程。
正如我所描述的那样))))当然,优先级逻辑是动态的。而这就是设置级别的难度。通过设置优先级别,我们无法确定其在下面环境的动态优先级逻辑中的执行时间。终端总是在wine或linux环境之上,无法影响下面环境的优先级逻辑。
并非所有提出的问题都被认为会得到回答。
中断本身的资源密集度如何。
最有可能的是取决于处理器的频率。
该过程需要多长时间来保存,以便进一步恢复。
根据基于量化的算法,如果出现以下情况,活动过程就会改变。
如何抓住中断的机会。
预分频器 是一个时钟分频器,作为一个或多个串联的T型触发器。
不是所有提出的问题都应该得到回答。
去研究这个问题(至少10年),请不要在这个主题上乱扔垃圾。
这里讨论的问题是不同的培训和不同的班级。
从286处理器开始就没有什么事情发生了吗? 我不记得了,也从来没有理解过,但是从Pentium-1开始(我读过一本关于它的书,但是很久以前)。
每个处理器都有分配的虚拟内存;内存组(RAM单元)的物理地址被处理器本身翻译成虚拟地址(或者说反过来? 我不记得了,但似乎是一个特殊的寄存器和一个指向地址转换表的虚拟指针)。这是硬件发生的一切,它是不可测量的,它是所谓的处理器核心,它区别于每一个英特尔处理器系列,它不是高速缓存!它是由硬件组成的。
Win系统上的任何程序都应该注册为一个进程,并至少创建一个线程。
然后Win任务调度器将为进程分配资源,并为其排队发送消息,调度器如何工作对我来说并不感兴趣,只需提高进程的优先级就足够了,可以看到,经过一些努力,PC开始计划,即微软为我的应用程序提供资源,这足以使操作系统继续运行。
中断是硬件,它是由操作系统处理的,当然是在驱动程序的帮助下。
计时器?- 如果我没记错的话,除非进程正在处理,否则定时器是不会堵塞消息队列的,这与操作系统的傻瓜式管理有关,谷歌WM_TIMER - 应该有详细说明
数字的顺序?只有处理器的时钟可以被测量,然后乘以处理器的计算系数,这里讨论过https://www.mql5.com/ru/forum/352454#comment_18588098 , 谷歌上有大量关于性能计量的信息。
去研究这个问题吧(至少10年),不要在这个问题上乱扔垃圾,拜托。
我们在这里以不同的训练和不同的阶层讨论问题。
每个人都应该被送到这里,而不是有选择地被送到这里))但像往常一样,谁问的问题够多,谁就会被踢到帽子上。
在我了解到处理程序是以阻塞模式执行后,我没有白白提出这个话题。
我触及了问题的真正症结,而你却不喜欢它。好吧,我放弃这个话题。
但我不明白在同步处理中实现及时事件的意义。
Slava, Nikolay, Valery 感谢你们的建设性对话。
从286处理器开始就没有发生过吗?嗯,我不记得了,我也没有处理过这个问题,但肯定是从Pentium-1开始的(我读过一本关于这个问题的书,虽然是很久以前)
,这是硬件的全部,它是不可测量的,是所谓的处理器核心,它区别于每一个英特尔处理器系列,它不是缓存!
如果是这样就好了。
我认为是这样。几乎所有的东西都是在硬件层面。否则多线程就不会有那么高的效率。
如果是这样就好了。
我认为是这样的。几乎所有的东西都是在硬件层面。否则多线程就不会那么有效。
只有这样
谷歌:处理器保护模式
如果我没有弄错的话,保护模式给了操作系统内核一个单独的权限级别,而且由于每个进程的虚拟内存--不可能得到正在运行的程序的RAM数据......好吧,除非你在调试器下作为一个单独的进程运行....,这是另一个专业领域))))。
但是,明确地说,一切都在硬件层面上工作,不可能测量它,只有操作系统工具 - 进程的虚拟内存切换是瞬间的,处理器本身在内部频率上工作 - CPU乘数...而如果你开始考虑缓存...为什么?- 有了问题,就要寻找解决方案!想写一个驱动程序吗?)))
SZZ:你可以写一个驱动程序,我记得当我使用TCP-logger时,它被安装为一个驱动程序,并记录了所有的流量,然后在表中按进程显示所有的流量....。只有一件事,就是思考编写驱动程序将如何帮助开发有利可图的TCP ))))。
UPD: Hubr "什么是保护模式,它有什么作用"https://habr.com/ru/post/118881/
UPD: 硬件级别(CPU)的代码执行权限 -受保护的环 维基
你总是能保证在任何 指令的随机单个样本上出现失败 ,包括最简单的汇编类型inc eax。这是架构上的原因,也是由于 "诚实地将数千个线程的时间量子分配给少数核心 "的物理限制。
不要再犯傻了,继续捕捉每百万个请求中的单个异常值。
注意到CopyTicks很少滞后。我写了一个测试脚本
并在压力模式下运行它。SymbolInfoTick比CopyTicks有明显更多的警报。
没有投诉。我只想了解,是什么影响了这些功能的实现中对压力负荷的不同看法?