国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

QT 實(shí)現(xiàn)百萬級的數(shù)據(jù)顯示內(nèi)存消耗幾十兆

這篇具有很好參考價(jià)值的文章主要介紹了QT 實(shí)現(xiàn)百萬級的數(shù)據(jù)顯示內(nèi)存消耗幾十兆。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

用QT 開發(fā)了一個(gè)上位機(jī)的工具用來解析串口的數(shù)據(jù),數(shù)據(jù)量比較大 ,如果QT tableview 控件完全顯示,內(nèi)存消耗較大,所以解析結(jié)果先建立sql 數(shù)據(jù)索引,然后通過垂直滾動(dòng)條的變化動(dòng)態(tài)地獲取數(shù)據(jù),每次從數(shù)據(jù)庫中提取50條,測試下來內(nèi)存消耗較小,可以實(shí)現(xiàn)百萬或者千萬級的數(shù)據(jù)顯示。

? ?QT 實(shí)現(xiàn)百萬級的數(shù)據(jù)顯示內(nèi)存消耗幾十兆 ?圖一 主界面

1:先將垂直滾動(dòng)條的valuechanged signal 和自定義的slot 綁定

 QScrollBar *bar = ui->tableView->verticalScrollBar();   
connect((QWidget*)bar,SIGNAL(valueChanged(int)),this,SLOT(acceptHScrollValueChanged(int)));

2:slot 傳入垂直滾動(dòng)條的位置值value 在線程中搜索數(shù)據(jù)。

void MainWindow::acceptHScrollValueChanged(int value)
{
    {
          model->removeRows(0,model->rowCount());
          HScrollValueChanged(value,logFileName,TotalMessageNumber);
          model->setRowCount(TotalMessageNumber);
    }
}

3:線程中取出數(shù)據(jù)返回到UI中顯示

void workThread::getTableData(int index,QString path,int totalMessagNum)
{
    QVector< QVector<QString> > result ,result2;

    int tableIndex=index;
 
     if(!dbFlag)
     {
         _sqlDb.setDBName("./log/"+path+"/"+path+"_log.db");
         _sqlDb.open("workThread");
         dbFlag=true;
     }
     _sqlDb.getLogPointByIndex(tableIndex,result);

     for(int i=0;i<result.size();i++)
     {
         QVector<QString> tmp(5);
         for (int j = 0; j<5; ++j)
         {
             if(j==2)
             {
               //  list << new QStandardItem(QString::number(result[i][2].toInt(),16));
                tmp[2]=QString::number(result[i][2].toInt(),16);
             }
             else if(j==3)
             {
                 MessageToIVI message=_database->getMessageToIVI(result[i][2].toInt());
                 tmp[3]=message.MessageName;
                // list << new QStandardItem(messageName);
             }
             else if(j==4)
             {
               //  list <<new QStandardItem(getMessagBodyByOffset(result[i][3].toInt()));
                 tmp[4]=getMessagBodyByOffset(result[i][3].toInt(),path);
             }
             else if(j==0)
             {
                 tmp[0]=result[i][0];
             }
             else if(j==1)
             {
                  tmp[1]=result[i][1];
             }
         }

         result2.push_back(tmp);
     }

   
    emit UpdatehDataSignal(result2,tableIndex);

}

4:UI中顯示數(shù)據(jù)庫中顯示的數(shù)據(jù)

void MainWindow::updateTableData(const QVector<QVector<QString> > result,int index)
{

#ifdef USER_MODE

    qDebug()<<"updateTableData:"<<result.size();
    userModel  * model = (userModel *)ui->tableView->model();
    RstData rstData;
    rstData.retCode = 0;
    rstData.result=result;
    rstData.index = index;

    model->handleResults(rstData);
 //   model->SetData(result,index);

#else
    QStandardItemModel  * model = (QStandardItemModel *)ui->tableView->model();

    if (result.size() == 0)
        return;
     int start = index;
     int col = result[0].size();
      qDebug()<<"updateTableData inedex:"<<index<<"size:"<<result.size()<<"col:"<<col;
     int row = result.size();

     for (int i = 0; i<row; ++i)
     {
        QList<QStandardItem*> list;
        for (int j = 0; j<5; ++j)
        {
            list <<new QStandardItem(result[i][j]);
        }

        model->insertRow(i + start, list);
        for(int k=0;k<3;k++)
        {
          model->item(i + start, k)->setTextAlignment(Qt::AlignCenter);
        }

     }
    model->setRowCount(TotalMessageNumber);
#endif

}

內(nèi)存消耗才58兆? ?

d5ebdede35e241b6b315794d27f37f82_noop

參考內(nèi)容:

https://blog.csdn.net/weixin_44575696/article/details/117407527?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_default&utm_relevant_index=2文章來源地址http://www.zghlxwxcb.cn/news/detail-510639.html

到了這里,關(guān)于QT 實(shí)現(xiàn)百萬級的數(shù)據(jù)顯示內(nèi)存消耗幾十兆的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java使用jdbcTemplate查詢并插入百萬級數(shù)據(jù)解決方案

    java使用jdbcTemplate查詢并插入百萬級數(shù)據(jù)解決方案

    背景:使用JdbcTemplate查詢500萬數(shù)據(jù),然后插入到數(shù)據(jù)庫。 這么多的數(shù)據(jù)按照普通的方式直接查詢?nèi)缓蟛迦?,服?wù)器肯定會(huì)掛掉,我嘗試過使用分頁查詢的方式去進(jìn)行分批查詢插入,雖然也能達(dá)到保證服務(wù)器不掛掉的效果,但是有一個(gè)嚴(yán)重的問題,每次查詢的數(shù)據(jù)很難保證順序

    2024年02月03日
    瀏覽(23)
  • EMQX +計(jì)算巢:構(gòu)建云上物聯(lián)網(wǎng)平臺(tái),輕松實(shí)現(xiàn)百萬級設(shè)備連接

    EMQX +計(jì)算巢:構(gòu)建云上物聯(lián)網(wǎng)平臺(tái),輕松實(shí)現(xiàn)百萬級設(shè)備連接

    隨著物聯(lián)網(wǎng)技術(shù)的逐步成熟,海量設(shè)備產(chǎn)生的數(shù)據(jù)為企業(yè)數(shù)字化提供了更加豐富的數(shù)據(jù)基礎(chǔ)。如何將海量設(shè)備數(shù)據(jù)與企業(yè)生產(chǎn)管理系統(tǒng)、業(yè)務(wù)應(yīng)用系統(tǒng)以及運(yùn)維監(jiān)控系統(tǒng)有機(jī)結(jié)合,是企業(yè)在未來實(shí)現(xiàn)差異化競爭與業(yè)務(wù)創(chuàng)新的關(guān)鍵。 在以物聯(lián)網(wǎng)數(shù)據(jù)為基礎(chǔ)的數(shù)字化轉(zhuǎn)型過程中,

    2024年02月02日
    瀏覽(26)
  • Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    ??工作中遇到這樣一個(gè)需求場景:由于ES數(shù)據(jù)庫中歷史數(shù)據(jù)過多,占用太多的磁盤空間,需要定期地進(jìn)行清理,在一定程度上可以釋放磁盤空間,減輕磁盤空間壓力。 ??在經(jīng)過調(diào)研之后發(fā)現(xiàn),某服務(wù)項(xiàng)目每周產(chǎn)生的數(shù)據(jù)量已經(jīng)達(dá)到千萬級別,單日將近能產(chǎn)生 兩百萬 的數(shù)據(jù)量

    2024年02月11日
    瀏覽(30)
  • 98.qt qml-使用曲線圖綜合示例、支持多種鼠標(biāo)交互、支持百萬數(shù)據(jù)顯示(已適配黑白風(fēng)格)

    98.qt qml-使用曲線圖綜合示例、支持多種鼠標(biāo)交互、支持百萬數(shù)據(jù)顯示(已適配黑白風(fēng)格)

    在上章我們只是簡單實(shí)現(xiàn)了曲線圖和折線圖的顯示: 79.qt qml-如何在QML中使用QCustomPlot之曲線/折線示例(已適配黑白風(fēng)格)_qml 折線圖_諾謙的博客-CSDN博客 所以本章實(shí)現(xiàn)綜合示例、并添加多種功能如下所示: 詳細(xì)顯示:鼠標(biāo)任意移動(dòng)顯示具體值內(nèi)容 鼠標(biāo)右擊:?彈出菜單欄,支持

    2024年02月05日
    瀏覽(34)
  • E往無前 | 海量數(shù)據(jù)ES 擴(kuò)展難?騰訊云大數(shù)據(jù)ES 擴(kuò)展百萬級分片也“So Easy~”

    E往無前 | 海量數(shù)據(jù)ES 擴(kuò)展難?騰訊云大數(shù)據(jù)ES 擴(kuò)展百萬級分片也“So Easy~”

    《E往無前》系列將著重展現(xiàn)騰訊云ES在持續(xù)深入優(yōu)化客戶所關(guān)心的「省!快!穩(wěn)!」訴求,能夠在低成本的同時(shí)兼顧高可用、高性能、高穩(wěn)定等特性,可以滿足微盟、小紅書、微信支付等內(nèi)外部大客戶的核心場景需求。 E往無前?|?海量數(shù)據(jù)ES擴(kuò)展難?騰訊云ES 擴(kuò)展百萬級分片

    2024年02月06日
    瀏覽(24)
  • TCP服務(wù)器的演變過程:使用epoll構(gòu)建reactor網(wǎng)絡(luò)模型實(shí)現(xiàn)百萬級并發(fā)(詳細(xì)代碼)

    TCP服務(wù)器的演變過程:使用epoll構(gòu)建reactor網(wǎng)絡(luò)模型實(shí)現(xiàn)百萬級并發(fā)(詳細(xì)代碼)

    手把手教你從0開始編寫TCP服務(wù)器程序,體驗(yàn)開局一塊磚,大廈全靠壘。 為了避免篇幅過長使讀者感到乏味,對【TCP服務(wù)器的開發(fā)】進(jìn)行分階段實(shí)現(xiàn),一步步進(jìn)行優(yōu)化升級。 本節(jié),在上一章節(jié)介紹了如何使用epoll開發(fā)高效的服務(wù)器,本節(jié)將介紹使用epoll構(gòu)建reactor網(wǎng)絡(luò)模型,實(shí)

    2024年02月01日
    瀏覽(30)
  • 【已解決】Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    【已解決】Java 中使用 ES 高級客戶端庫 RestHighLevelClient 清理百萬級規(guī)模歷史數(shù)據(jù)

    ??工作中遇到這樣一個(gè)需求場景:由于ES數(shù)據(jù)庫中歷史數(shù)據(jù)過多,占用太多的磁盤空間,需要定期地進(jìn)行清理,在一定程度上可以釋放磁盤空間,減輕磁盤空間壓力。 ??在經(jīng)過調(diào)研之后發(fā)現(xiàn),某服務(wù)項(xiàng)目每周產(chǎn)生的數(shù)據(jù)量已經(jīng)達(dá)到千萬級別,單日將近能產(chǎn)生 兩百萬 的數(shù)據(jù)量

    2024年02月14日
    瀏覽(20)
  • 五、Linux C/C++ 對epoll-reactor服務(wù)器的百萬級高并發(fā)實(shí)現(xiàn)

    五、Linux C/C++ 對epoll-reactor服務(wù)器的百萬級高并發(fā)實(shí)現(xiàn)

    前言:基于epoll的反應(yīng)堆模式(reactor)的服務(wù)器程序,進(jìn)行百萬并發(fā)量的連接測試。通過代碼優(yōu)化,以及服務(wù)器與客戶端的硬件配置優(yōu)化,達(dá)到百萬并發(fā)。 代碼實(shí)現(xiàn) 代碼實(shí)現(xiàn): 1臺(tái)服務(wù)器:8G運(yùn)行內(nèi)存 8核CPU 3臺(tái)客戶端:4G運(yùn)行內(nèi)存 4核CPU 這些硬件配置可以通過虛擬機(jī)配置。 按照

    2024年02月20日
    瀏覽(35)
  • MySQL 百萬級/千萬級表 全量更新

    業(yè)務(wù)需求:今天從生成測試環(huán)境遷移了一批百萬級/千萬級表的數(shù)據(jù),領(lǐng)導(dǎo)要求將這批數(shù)據(jù)進(jìn)行脫敏處理(將真實(shí)姓名 、電話、郵箱、身份證號(hào)等敏感信息進(jìn)行替換)。遷移數(shù)據(jù)記錄數(shù)如下(小于百萬級的全量更新不是本文重點(diǎn)): 表名 表名含義 行記錄數(shù) base_house 房屋表 42

    2024年02月05日
    瀏覽(20)
  • ElasticSearch + Canal 開發(fā)千萬級的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】

    ElasticSearch + Canal 開發(fā)千萬級的實(shí)時(shí)搜索系統(tǒng)【轉(zhuǎn)】

    我們總結(jié)一下新搜索系統(tǒng)需要解決的幾個(gè)問題: 海量請求。幾百萬的請求毫無壓力,上千萬上億也要可以扛得住。 實(shí)時(shí)搜索。指的是當(dāng)一個(gè)用戶修改了其數(shù)據(jù)之后,另一個(gè)用戶能實(shí)時(shí)地搜索到改用戶。 海量請求。要扛得起海量的搜索請求,可以使用ElasticSearch來實(shí)現(xiàn),它是在

    2024年04月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包