Minecraft(我的世界)中文论坛

 找回密码
 注册(register)
查看: 1353|回复: 16

[转载插件] [管理]Spark —— Spark性能分析器[1.8-1.12]

[复制链接]
发表于 2018-10-7 19:05:16 | 显示全部楼层 |阅读模式
服务端插件
英文名称: Spark
中文名称:
插件来源: 转载
适用服务端: |CraftBukkit| |Spigot| |Sponge| |BungeeCord| |其它| 
插件类型: 管理 
语言支持: English 
适用版本: 1.12 1.11 1.10 1.9 1.8 
前置Mod|插件: 无前置插件
下载地址: https://ci.lucko.me/job/spark/
原帖地址: https://github.com/lucko/spark

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 GiNYAi 于 2018-10-7 20:57 编辑

(闪电)spark
Spark是一个基于sk89q的WarmRoast profiler的CPU分析插件.
最新版本可以从Jenkins上下载.
Bukkit/Sponge/BungeeCord/Velocity应该使用spark.jar,而纯forge(1.12.2)应该使用spark-forge.jar
Bukkit/Sponge /spark
BungeeCord     /sparkbungee
Velocity           /sparkvelocity
forge服务器端 /spark
forge客户端 /sparkclient


                               
登录/注册后可看大图


                               
登录/注册后可看大图

它能做什么?
实际上,它监视服务器的活动, 记录某项行为占用最多的计算时间. 这些统计数据之后可以被用来分析服务器或者插件的潜在的性能问题.
数据记录之后,可以在浏览器中显示一个函数调用关系图,用来来分析.
spark 不会修复"卡顿"-他只是一个帮助分析性能问题原因的工具.
About
WarmRoast 功能
这些功能来自上游的"WarmRoast"项目.
  • 视图是完全建立在Web上的,不需要任何特殊的软件,只需要一个Web浏览器!
  • 输出是按照方法调用的栈的形式组织,使得输出很容易理解
  • 节点可以展开或者折叠来显示时间信息与更多子节点.
  • 可以一眼看出一个方法占全部CPU使用的比例.
  • 可以看到每个方法占CPU时间在父方法中的百分比
  • 可以调整的取样频率.
  • 对目标程序(服务器)几乎没有任何消耗或副作用


spark 功能
WarmRoast出色的工具,但是他有几个缺陷.
  • 某些人几乎无法使用它, 因为要使用它, 你需要能够直接使用SSH(或者等价的方式)连接你的服务器.(面板服无法使用)
  • 设置与开始比较笨拙 - 首先你需要连接到你要测试的机器上.然后你需要记下你服务器进程的PID,或者在当前运行的VM列表中找出你要测试的服务器(同时运行多个服务器的时候这并不轻松). - 然后让分析器运行一小段时间,再浏览应用为你呈现的网页.
  • 与其他开发者或者管理员分享分析数据并不容易.
  • 你需要在你的服务器上安装JDK.


我尝试在Spark中处理这些缺点
  • 分析由游戏内或者控制台命令控制.你并不需要直接访问服务器机器 - 只需要向平常一样安装插件就可以了.
  • 数据会被上传到一个像"pastebin"一样的网站来查看,这样就不需要一个临时的web服务器,你可以简单的把你的分析数据与其他人分享!
  • 它并不需要安装特殊的Java组件或者提供JDK路径


Spark与其他分析工具相比的优点
  • MCP (Mod Coder Pack) 反混淆映射可以通过浏览器直接应用到方法名上
    • 这对于Bukkit映射,和Sponge/Forge (Searge) 映射同样有效
  • 不需要任何特殊的软件来查看输出,只需要一个Web浏览器.


它是如何工作的?
Spark(WarmRoast)分析器使用采样#Statistical_profilers)技术.一个采样分析器通过定期观察目标程序调用栈来确定特定行为的频率.实践中,采样分析器经常能够提供更清晰的信息,因为他们并不中断目标程序,因此并不会有那么多的副作用.
采样分析器通常数值上不如其他分析方法(例如的性能分析器)精确,但是可以让目标程序几乎满速运行.
结果的数据并不是确切的,但是是统计近似的.输出的准确性会随着采样时间的长度增加, 或者采样更频繁而增加.

Spark vs "Minecraft Timings"
Aikar's timings 系统 (Spigot 与 Sponge 内置) 与 spark/WarmRoast接近, 实际上它同样分析服务器的CPU活动.
Timings通常会比Spark更精确,但是(可以说?!)用途更小,因为每个扫描区域需要人为定义.
例如,Timings可能会发现插件X的某个监听器消耗了大量时间处理PlayerMoveEvent,但是他不会告诉你这个处理中的哪个部分是缓慢的.而spark/WarmRoast则 显示这些信息,指出导致性能问题的方法调用.
安装
只需把文件 spark.jar 放到你的服务器的plugins/mods文件夹下,然后重启服务器.
Commands
命令
所有命令需要权限spark.profiler.


/profiler start
开始一个新的分析.
参数
  • --timeout <timeout>
    • 指定分析器会在自动停止之前运行多久,单位为秒.
    • 如果未指定,分析器则会一直运行下去,只到手动停止
  • --thread <thread name>
    • 指定分析的线程名.
    • 如果未指定,分析器则会只分析主线程"server thread".
    • 符号*可以用来表示分析所有线程.
  • --interval <interval>
    • 指定采样间隔,单位为毫秒.
    • 更低的的值会提升结果的准确性,但是可能会导致服务器缓慢.
    • 如果未指定,默认的间隔是10毫秒.
  • --not-combined
    • 设定一个线程池中的线程是否被合并成一个节点
    • Specifies that threads from a pool should not be combined into a single node.
  • --only-ticks-over <tick length millis>
    • 设定只包括一个tick消耗了超过指定时间的数据才会被记录.Specifies that entries should only be included if they were part of a tick that took longer than the specified duration to execute.




/profiler info
显示当前运行中的分析的信息,如果存在的话


/profiler stop
结束当前运行中的分析,上传结果,返回一个查看结果的连接.


/profiler cancel
取消当前运行的分析,放弃任何结果,并不会上传他们.


/profiler monitoring
开启/关闭Tick监视系统.
Arguments
  • --threshold <percentage increase>
    • Specifies the report threshold, measured as a percentage increase from the average tick duration.


License
spark is a fork of WarmRoast, which is licensed under the GNU General Public License.
Therefore, spark is also licensed under the GNU General Public License.
协议
Spark是 WarmRoast 的一个分支,  WarmRoast是licensed under the GNU General Public License.
因此,Spark也是GNU General Public License 协议.

本文翻译自https://github.com/lucko/spark/blob/master/README.md

评分

参与人数 4人气 +9 金粒 +74 收起 理由
583736449 + 4 + 44 MCBBS有你更精彩~
1250305944 + 2 Ssssssssssssssssssss
luenlin + 2 + 30 咸鱼姐姐nb
q879492767 + 1 MCBBS有你更精彩~

查看全部评分

发表于 2018-10-7 20:18:38 | 显示全部楼层
完全不懂。但看起来比较内涵·
回复

使用道具 举报

发表于 2018-10-20 21:52:22 | 显示全部楼层
timings on
回复

使用道具 举报

发表于 2018-10-21 17:14:37 | 显示全部楼层
期待进一步的扫盲使用教程 降低使用门槛
回复

使用道具 举报

头像被屏蔽
发表于 2018-10-21 17:28:28 | 显示全部楼层
测试了一下u端1.7.10是可使用的。/spark之类的指令可以输出其他的就不知道了 %4I[662NYL)3IN$OSP@]KGY.png
回复

使用道具 举报

发表于 2018-11-6 08:57:55 | 显示全部楼层
赞一个,下载来试试看分析
回复

使用道具 举报

发表于 2018-11-6 13:06:20 | 显示全部楼层
有用 顶一个
回复

使用道具 举报

发表于 2018-11-6 16:41:50 | 显示全部楼层
有点牛逼 这个我就收下了 感谢大大
回复

使用道具 举报

发表于 2018-11-6 16:36:22 | 显示全部楼层
有点牛逼 这个我就收下了 感谢大大
回复

使用道具 举报

头像被屏蔽
发表于 2018-11-24 14:26:10 | 显示全部楼层
强大的插件可怕
回复

使用道具 举报

发表于 2018-11-25 18:35:49 | 显示全部楼层
太有用了
回复

使用道具 举报

发表于 2018-11-26 16:48:06 | 显示全部楼层
很有用插件,感想楼主分享插件!
回复

使用道具 举报

发表于 2018-11-30 21:28:22 | 显示全部楼层
以后可能会用到
回复

使用道具 举报

头像被屏蔽
发表于 4 天前 | 显示全部楼层
感谢大佬这么吊的插件!!!!!!!
回复

使用道具 举报

头像被屏蔽
发表于 4 天前 | 显示全部楼层
MCBBS有你更精彩~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 手机版本

GMT+8, 2018-12-13 12:03 , Processed in 0.143907 second(s), 26 queries , Memcache On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。本站与Mojang以及微软公司没有从属关系。

© 2010-2019 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

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