缓存平均的两种算法

这篇具有很好参考价值的文章主要介绍了缓存平均的两种算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言        

线边库存物料的合理性问题是物流仿真中研究的重要问题之一,如果线边库存量过多,则会对生产现场的布局产生负面影响,增加成本,降低效益。

写在前面

        仿真分析后对线边Buffer的使用情况进行合理的评估就是一个非常重要的事情。比较关心的参数包括:缓存位最大值、缓存位最小值和缓存位平均值。极值都可以十分方便地通过统计数据进行查看,而均值的评估,没办法直接获得,需要我们再处理后才能获取,下面波哥给大家提供两种缓存平均的计算方法。       

缓存平均的两种算法,Plant Simulation沉思录,PlantSimulation

Buffer的统计数据常用属性

  1. Minimum contents:最小值
  2. Maximum contents:最大值

通过上面的两个参数可以获得buffer的极值。

        接下来波哥给大家讲解常见的两种方式,供大家参考,两种方式有利有弊。第一种较为方便快捷,第二种精准,但较为繁琐。

正文

方法1:缓存的平均占用率计算

可以通过通过buffer的统计属性间接计算平均缓存值。

如下计算公式去计算缓存均值

/*
Approximate estimation the average buffer method
*/
buffer_average:= (EventController.SimTime - EventController.StartStat) * Buffer.StatRelativeOccupation * Buffer.capacity / (Buffer.StatNumOut + Buffer.NumMU)

buffer的属性StatRelativeOccupation,提供了buffer再仿真过程中的物料dwelling times的时间总和与仿真时间的占比。

缓存平均的两种算法,Plant Simulation沉思录,PlantSimulation

可以看出这种方式并不是十分准确,比较粗糙。

方法2:使用timesequence记录

timesequence设置时,只需要在record记录buffer的nummu值即可。

缓存平均的两种算法,Plant Simulation沉思录,PlantSimulation

最后,求取第二列均值,即可获知,仿真期间的平均缓存量。

buffer_average := buffer.meanValue({2, 1}..{2, *})

并且,在拿到详细数据后,可以更加方便地分析,各个阶段的缓存情况,波哥建议使用第二种情况进行分析。文章来源地址https://www.toymoban.com/news/detail-639146.html

到了这里,关于缓存平均的两种算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ 实现定时器的两种方法(线程定时和时间轮算法修改版)

    定时器要求在固定的时间异步执行一个操作,比如boost库中的boost::asio::deadline_timer,以及MFC中的定时器。也可以利用c++11的thread, mutex, condition_variable 来实现一个定时器。 1、使用C++11中的thread, mutex, condition_variable来实现一个定时器。 注:此算法会每一个任务创建一个线程,不推

    2024年02月05日
    浏览(50)
  • springboot 集成caffeine单体缓存两种方式及算法简介 (注解/手动)

           Caffeine 是基于 JAVA 8 的高性能缓存库。并且在 spring5 (springboot 2.x) 后,spring 官方放弃了 Guava,而使用了性能更优秀的 Caffeine 作为默认缓存组件。        Caffeine 因为使用了  Window-TinyLFU  缓存淘汰策略,提供了一个 近乎最佳的命中率 。综合了 LRU 和 LFU 算法的长处,

    2024年02月03日
    浏览(45)
  • 【数据结构】稀疏矩阵存储的三种方法及三元组表示稀疏矩阵转置算法的两种实现 —— C++

    1. 三元组顺序表数据结构 注意:data[]中的元素是按行存储或者按列存储的,所以 在将三元组逆置时,不能简单地将行列下标对换,data[]数组中元素的顺序也需要重新排列 2. 三元组表示稀疏矩阵转置算法1 3. 三元组表示稀疏矩阵转置算法2:快速转置 为了 便于随机存取任意一

    2024年02月05日
    浏览(45)
  • 【数据结构与算法分析】使用C语言实现队列的两种(带头结点与不带头结点)链式存储,并且给出一种循环队列的设计思想

      当我们编写程序时,经常需要处理各种数据结构。队列是一种常见的数据结构,它有着广泛的应用场景。队列的基本操作包括入队和出队,应用于模拟等待队列、消息队列、计算机缓存等场合。   在实际编程中,我们可以用不同的数据结构来实现队列。本文主要介绍了

    2024年02月08日
    浏览(120)
  • 【LeetCode 算法】Walking Robot Simulation 模拟行走机器人 - 哈希

    机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令 commands : -2 :向左转 90 度 -1 :向右转 90 度 1 = x = 9 1 = x = 9 1 = x = 9 :向前移动 x 个单位长度 在网格上有一些格子被视为障碍物 obstacles 。第 i 个障碍物位

    2024年02月15日
    浏览(39)
  • 【LeetCode 算法】Walking Robot Simulation 模拟行走机器人 - 二分

    机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发,面向北方。该机器人可以接收以下三种类型的命令 commands : -2 :向左转 90 度 -1 :向右转 90 度 1 = x = 9 1 = x = 9 1 = x = 9 :向前移动 x 个单位长度 在网格上有一些格子被视为障碍物 obstacles 。第 i 个障碍物位

    2024年02月11日
    浏览(49)
  • VueRouter的两种模式

    前后端分离: 利用Ajax,可以在不刷新浏览器的情况下异步数据请求交互。 前端路由: 匹配不同的url路径,进行解析,加载不同组件,动态渲染内容,不会向后端发出请求。(VueRouter) 单页应用SPA(只有一个html文件),页面交互和页面刷新都是无刷新的。前后端分离+前端路

    2024年02月08日
    浏览(41)
  • androidkiller的两种异常情况

    第一种反编译时异常: Exception in thread “main” org.jf.dexlib2.dexbacked.DexBackedDexFile$NotADexFile: Not a valid dex magic value: cf 77 4c c7 9b 21 01 修改方法: 编辑 AndroidKiller 的 bin/apktool 目录下有一个 apktool.bat 文件 修改成:在 java -jar “%~dp0apktoolapktool_2.4.1.jar” 后加上 --only-main-classes 内容 j

    2024年01月18日
    浏览(37)
  • ssh的两种登录方式

    1. 密码登录 这是默认的一种登录方式,如图: 输入密码以后成功登录shell: 以后每次登录都得输入密码,比较麻烦。 2. 公钥登录 为了方便,ssh还提供了使用公钥的登录方式,原理为在client生成一对公私钥,client保留私钥,把公钥写入server。具体方式如下: 一、 在client: 生

    2024年02月16日
    浏览(46)
  • 封装axios的两种方式

    作为前端工程师,经常需要对axios进行封装以满足复用的目的。在不同的前端项目中使用相同的axios封装有利于保持一致性,有利于数据之间的传递和处理。本文提供两种对axios进行封装的思路。 首先导入了 axios, AxiosInstance和AxiosResponse模块 ,用于创建一个http请求的实例和处理

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包