⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testfrag.cpp

📁 最新版本!fastdb是高效的内存数据库系统
💻 CPP
字号:
//-< TESTLEAK.CPP >--------------------------------------------------*--------*
// FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *
// (Main Memory Database Management System)                          *   /\|  *
//                                                                   *  /  \  *
//                          Created:     26-Jul-2001  K.A. Knizhnik  * / [] \ *
//                          Last update: 26-Jul-2001  K.A. Knizhnik  * GARRET *
//-------------------------------------------------------------------*--------*
// Memory allocator test
//-------------------------------------------------------------------*--------*

#include "fastdb.h"
#include <stdio.h>

USE_FASTDB_NAMESPACE

#define N_ITERATIONS      10000000
#define N_RECORDS         100000
#define MAX_VALUE_LENGTH  1000

class Record {
  public:
    int           id;
    db_int8       key;
    dbArray<int1> value;

    TYPE_DESCRIPTOR((KEY(id, HASHED), KEY(key, INDEXED), FIELD(value)));
};

REGISTER(Record);

int main(int argc, char* argv[])
{
    int i;
    dbDatabase db;
    int nIterations = N_ITERATIONS;
    if (argc > 1) { 
        nIterations = atoi(argv[1]);
    }
    if (db.open("testleak2")) {
        Record rec;
        db_int8 key = 1999;
        for (i = 0; i < N_RECORDS; i++) {  
            key = (3141592621u*key + 2718281829u) % 1000000007u;  
            rec.id = i;
            rec.key = key;
            db.insert(rec);
        }
        dbCursor<Record> cursor(dbCursorForUpdate);  
        int id;
        dbQuery q;
        q = "id=",id;
        for (i = 0; i < nIterations; i++) { 
            id = i % N_RECORDS;
            cursor.select(q);
            cursor->key = key = (3141592621u*key + 2718281829u) % 1000000007u;            
            cursor->value.resize((unsigned)(key*4) % MAX_VALUE_LENGTH);
            cursor.update();
            db.commit();
            if (i % 1000 == 0) { 
                printf("Iteration %d\r", i);
                fflush(stdout);
            }
        }
        printf("\nUpdate completed\n");
        db.close();
    } else { 
        fprintf(stderr, "Failed to open database\n");
    }
    return 0;
}











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -