日志
如何提升桌面端原生应用APP稳定性探究.
2018-06-21 15:47
目前市面上原生应用APP内部通讯协议:HTTP TCP/IP。每一路通讯的搭建在内存和CPU资源均有消耗。
单一运行的原生应用支撑线程有一个上限阈值。超过这个值,app奔溃。内存消耗殆尽,app奔溃。 很明确要解决这种奔溃问题。就是要控制线程,控制内存。经典的控制手法,就是线程池,和内存池的概念。 一个步骤就是将线程池和内存池结合起来。app应用的稳定性将理论提升N倍。 提供一个框架内核思路[一个经典跳转操作,无缝解决线程池等待问题] httpposter *httpcentter::getposter() { while (ture) { waitbegin: if (m_icount >= m_HttpPoolcount) {m_icount=0;}//防止越界 if (!m_HttpPostGetPool.at(m_icount)->isbusy()) { disconnect(m_HttpPostGetPool.at(m_icount), 0, 0, 0);//断开它的所有信号连接 QPointer<httpposter> reslut = m_HttpPostGetPool.at(m_icount); reslut->setbusy(true); m_icount++; return reslut; break;//返回 } else//如果http不够用就多申请几个 { if(m_HttpPoolcount >30) { m_icount++; qApp->processEvents(); goto waitbegin;//break是跳不出多重循环的 } QPointer<httpposter> pNewHttpposget = m_MemPool.Mempool_new(); pNewHttpposget->setbusy(false); m_HttpPostGetPool<<pNewHttpposget; m_HttpPoolcount++; m_icount++; } } } |
下一篇: 无
上一篇: 无聊用Qt写的一个看电影工具.