The PerformanceWatchdogViewModel
class is used to monitor the performance of a Cesium application and provide alerts when the performance drops below a certain threshold.
constructor(options?: PerformanceWatchdogViewModelOptions)
options
- 可选参数对象,包含以下属性:
lowFrameRate
: 可选项, Number类型,default:60,低于多少帧就会显示警告.。
lowFrameRateMessage
: 可选项, String类型, default:警告:低帧率. ,警告消息.
highFrameTime
: 可选项, Number类型,default:32,高于多少毫秒显示警告,这个只有在Cesium中设置了 maximumRenderTimeChange 而且渲染时间超过了限制才会被触发 。
highFrameTimeMessage
: 可选项, String类型,default:警告:过长的帧时间. ,过长帧时间的警告消息.
scene
: 可选项, CesiumScene类型, default:undefined ,跟踪Scene的可选视图模型。
paused
: 可选项,Boolean类型,default:false ,开始时是否停止检查。
const viewer = new Cesium.Viewer('cesiumContainer');
const performanceWatchdog = new Cesium.PerformanceWatchdogViewModel({
scene: viewer.scene,
lowFrameRate: 20,
lowFrameRateMessage: '警告:帧率过低',
highFrameTime: 32,
highFrameTimeMessage: '警告:过长的帧时间'
});
//订阅事件
performanceWatchdog.lowFrameRate.addEventListener(function() {
console.log(performanceWatchdog.lowFrameRateMessage);
});
performanceWatchdog.highFrameTime.addEventListener(function() {
console.log(performanceWatchdog.highFrameTimeMessage);
});
destroy
销毁对象并释放与该对象关联的资源。
performanceWatchdog.destroy()
isDestroyed
如果对象已销毁,则返回true,否则返回false。
const isDestroyed = performanceWatchdog.isDestroyed()
lowFrameRate
可读可写, 当低帧率事件触发时的帧率阈值。
performanceWatchdog.lowFrameRate = 30
lowFrameRateMessage
可读可写, 当触发低帧率事件时发送的消息。
performanceWatchdog.lowFrameRateMessage = '提示:帧率过低'
highFrameTime
可读可写,当帧时间事件触发时的超出时间阈值(ms)
performanceWatchdog.highFrameTime = 64
highFrameTimeMessage
可读可写,当触发过长帧时间事件时发送的消息。
performanceWatchdog.highFrameTimeMessage = '提示:帧时间过长'
scene
可读可写,除非在构造函数中指定了,否则必须手动设置,以追踪Scene的可选视图模型。
performanceWatchdog.scene = scene
lowFrameRateEvent
可读,当低帧率事件触发时发生。
performanceWatchdog.lowFrameRateEvent.addEventListener(function(){
console.log(`帧率太低:${performanceWatchdog.lowFrameRate} 帧每秒`);
});
highFrameTimeEvent
可读,当帧时间事件触发时发生。
performanceWatchdog.highFrameTimeEvent.addEventListener(function(){
console.log(`帧时间过长:${performanceWatchdog.highFrameTime} 毫秒`);
});
低帧率警告(Low Frame Rate Warning)
和 高帧时间延迟警告(High Frame Time Delay Warning)
属于一个或多个数据渲染帧没能保持在60fps或32ms,他们都可以通过 FrameState
对象检测出来,检测出现在的渲染帧是否连续多帧都很缓慢。一旦发生警告,会将发生警告的结果记录到上一个能保持正确的帧开始时的最后时间。每个警告的 flags 标识可以被设置,来决定是否还需留意这类警告. 当触发了一个性能警告后,可以使用 PerformanceWatchdogViewModel
的消息属性来输出相应的提示信息。
注意:如果您的程序本来就运行不是很流畅,不建议开启 PerformanceWatchdogViewModel,因为会引起额外的资源消耗和警告。