osgearth加载请求节点优化方案
来源:互联网 发布:java web方面的书籍 编辑:程序博客网 时间:2024/04/25 13:46
背景: pagelod请求一个node的图片是单线程,为了优化网络请求加载速度
方法:
1. 可以设置viewer->getDatabasePager()->setUpThreads(10,8); 设置数据分页管理调度线程数,这里设置是总计10个线程,http网络处理是8个线程,同时可以有8个线程从pagelist取出要加载的requestdata;
2. 加载一个父节点下的4个子节点是使用一个线程,这里也可以分配4个线程,每个线程处理一个节点的图片;
我的方案是在SingleKeyNodeFactory::createNode里面加载4个子节点是做了如下处理:
for(unsigned q=0; q<4; ++q)
{
TileKey child = key.createChildKey(q);
//_modelFactory->createTileModel( child, _frame, model[q] );
TestTileModelThread *p = new TestTileModelThread(q, this, child, model[q]);
DatabaseThreadList.push_back(p);
p->startThread();
}
--------------------------- TestTileModelThread类实现如下 ----------------------------------------
SingleKeyNodeFactory::TestTileModelThread::TestTileModelThread(int num, osg::ref_ptr<SingleKeyNodeFactory> nodefactory, const TileKey &key, osg::ref_ptr<TileModel> out_model){
m_nodefactory = nodefactory;
m_TileKey = key;
m_model = out_model;
m_q = num;
}
int SingleKeyNodeFactory::TestTileModelThread::cancel(){
OpenThreads::Thread::YieldCurrentThread();
return 0;
}
void SingleKeyNodeFactory::TestTileModelThread::run(){
//double start = GetTickCount();
m_nodefactory->_modelFactory->createTileModel(m_TileKey, m_nodefactory->_frame, m_model);
m_nodefactory->_model[m_q] = m_model.release();
//double end = GetTickCount();
//printf("%s::%d:: key:%s, time:: %lf, pthreadID: %0x \n", __FILE__, __LINE__, m_TileKey.str().c_str(), end - start, getThreadId());
}
- osgearth加载请求节点优化方案
- 场景加载进度条优化方案
- 加载GIF图片优化方案
- ListView加载速度/性能优化方案分析
- ListView加载速度/性能优化方案分析
- JavaScript无阻塞加载性能优化方案
- ListView加载速度/性能优化方案分析
- ListView加载速度/性能优化方案分析
- ListView加载速度/性能优化方案分
- Cocos2DX UIListView 大量加载优化方案
- osgEarth数据加载及组织解析
- OSGEarth开发---MapNode的加载过程
- osgearth加载本地离线影像瓦片地图
- osgEarth数据加载及组织解析
- osgEarth矢量加载案例 39. feature_country_boundaries.earth
- 【Android性能优化】Android图片加载方案--Bitmap的内存管理和优化方案
- [置顶] 【Android性能优化】Android图片加载方案--Bitmap的内存管理和优化方案
- RecyclerView使用 及 滑动时加载图片优化方案
- 线性表的顺序表示:顺序表ADT_SeqList
- 模拟器使用
- zoj3494 BCD Code ac自动机+数位dp
- Intent中的四个重要属性——Action、Data、Category、Extras
- 抽象类(Abstract) && 接口(Interface)区别比较
- osgearth加载请求节点优化方案
- 万年历(C语言代码实现)
- Python os.system
- mac下myEclipse安装及配置
- 就这样开始吧
- UIColor为0~1的小数
- Visual Studio 2013 手动缩进
- Docker的镜像和容器的区别
- PCI总线驱动