IL2Cpp深坑之ThreadPool

本文探讨了在使用IL2Cpp时遇到的ThreadPool性能问题,通过Unity的Profiler发现,在iOS平台上IL2Cpp打包的应用在iPhoneX上运行帧率大幅降低。经分析,该问题可能与Unity已知的Bug有关。为解决此问题,作者尝试限制ThreadPool线程数量,并最终决定放弃Unity的ThreadPool,转而自行实现。经过代码调整后,应用性能得到改善,满帧运行。
摘要由CSDN通过智能技术生成

继上篇IL2Cpp深坑之WeakReference之后,新坑出炉!?

试用RVO2-CS时,发现Android Mono打出来的包,在500元的安卓手机上可以跑50帧,但是Androdi/iOS IL2Cpp打包在iPhoneX上也只能跑到15帧!真机Profile实锤如下:

分析后,锁定问题代码如下:

for (int block = 0; block < workers_.Length; ++block)
{
    doneEvents_[block].Reset();
    ThreadPool.QueueUserWorkItem(workers_[block].step);
}
WaitHandle.WaitAll(doneEvents_);

for (int block = 0; block < workers_.Length; ++block)
{
    doneEvents_[block].Reset();
    ThreadPool.QueueUserWorkItem(workers_[block].update);
}
WaitHandle.WaitA
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值