设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 158|回复: 0

[转载发布] SES Benchmark (Measure code execution speed.)

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-7-30 21:34:42 | 显示全部楼层 |阅读模式
    SES Benchmark v1.0
    by Solistra

    Introduction
    This script provides a simple benchmarking tool similar to the Benchmark module present in the Ruby standard library. Essentially, this script allows you to run specified code and objectively determine its execution speed. This is primarily a scripter's tool.

    Change Log

    • v1.0 (April 20th, 2014) - Initial release.
    Features

    • Objectively determine execution speed of code.
    • Displays speed in real-time and user processing time.
    • Allows testing of multiple strategies in a single measurement.
    • Easily modify the number of iterations for each benchmark.
    Screenshot
    Spoiler





    Usage
    This script is intended to be used entirely through the benchmarking method SES::Benchmark.measure. This method takes the number of iterations to run the passed block as an argument -- if no argument is given, the block is run SES::Benchmark.iterations times (10,000 by default, though this can be redefined in the configuration area or during runtime). For example, we could measure Array#pop 100,000 times like so:
     
                    Code:       
    1. SES::Benchmark.measure(100_000) { [1, 2, 3].pop }
    复制代码

    The SES::Benchmark.measure method can also report on any number of ways to potentially run code -- very useful for benchmarking alternative methods of attaining the same result. To do so, simply pass a block that takes a single argument; the argument passed yields a Reporter instance with the report method. For example, this is how we could benchmark Array#sort versus Array#sort!:
     
                    Code:       
    1. SES::Benchmark.measure do |x|  a = (1..100).to_a.shuffle!  x.report('Array#sort')  { a.sort  }  x.report('Array#sort!') { a.sort! }end
    复制代码

    NOTE: Reports are executed in the order that they are given -- running the code above with the report calls switched would produce misleading results. (Labels for reports are also optional, but highly recommended.)

    In addition to this, you may run individual reports a different number of times than the other reports in a measure block. For instance, we could default to running iterations 100,000 times while running a single report for 200,000 like so (using the previous example):


                    Code:       
    1. SES::Benchmark.iterations = 100_000SES::Benchmark.measure do |x|  a = (1..100).to_a.shuffle!  x.report('Array#sort')           { a.sort  }  x.report('Array#sort!', 200_000) { a.sort! }end
    复制代码

    Script
    This script is available from SES VX Ace.

    Installation
    Place this script below the SES Core (v2.0) script (if you are using it) or the Materials header, but above all other custom scripts. This script does not require the SES Core (v2.0), but it is recommended.

    Credit and Thanks

    • Solistra
    Author's Notes
    This script is made available under the terms of the MIT Expat license. View this page for more information.


    本贴来自国际rpgmaker官方论坛作者:Solistra处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/ses-benchmark-measure-code-execution-speed.26791/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-17 16:09 , Processed in 0.065576 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表