小编Ros*_*eck的帖子

如何针对大量整数优化C++/C代码

我写了下面提到的代码.代码检查每个字节的第一位.如果每个字节的第一位等于0,则它将该值与前一个字节连接,并将其存储在不同的变量var1中.这里pos指向整数的字节.我的实现中的一个整数是uint64_t,最多可占用8个字节.

uint64_t func(char* data)
{
    uint64_t var1 = 0; int i=0;
    while ((data[i] >> 7) == 0) 
    {
        variable = (variable << 7) | (data[i]);
        i++;
    }   
   return variable; 
}
Run Code Online (Sandbox Code Playgroud)

因为我反复为func()调用数万亿次整数.因此它运行缓慢,有没有办法优化这段代码?

编辑:感谢Joe Z ..确实是一种uleb128拆包的形式.

c c++ optimization performance

10
推荐指数
2
解决办法
1064
查看次数

检查字符串是否在python中的2 GB字符串列表中

我有一个A.txt2 GB 的大文件()包含一个字符串列表['Question','Q1','Q2','Q3','Ans1','Format','links',...].

现在我有另一个更大的文件(1TB)包含第二个位置的上述字符串:

输出:

a, Question, b
The, quiz, is
This, Q1, Answer
Here, Ans1, is
King1, links, King2
programming,language,drupal,
.....
Run Code Online (Sandbox Code Playgroud)

我想保留第二个位置包含存储在文件中的列表中的字符串的行A.txt.也就是说,我想保留(存储在另一个文件中)下面提到的行:

a, Question, b
This, Q1, Answer
Here, Ans1, is
King1, links, King2
Run Code Online (Sandbox Code Playgroud)

当文件(A.txt)中列表的长度为100时,我知道如何做到这一点.使用'any'.但是当文件(A.txt)中的列表长度为2 GB时,我不知道应该如何处理它.

python

6
推荐指数
1
解决办法
214
查看次数

在C++中存储指向存储在磁盘上的文件的行号的指针

我想在数组中存储指向文件行号的指针,之后我想从磁盘中检索指定的行.我无法直接存储指向行号的指针,因为当我读回文件时,内存位置会发生变化.所以,我正在存储文件开头的偏移量.为了存储偏移,我使用"uint_64t".但是,由于我的文件大小为200GB,因此"uint_64t"无法表示所有偏移量.

我有以下问题:

  1. 除了存储偏移量之外,还有其他一些方法可以存储指向存储在磁盘上的文件的指针.

  2. 我可以使用其他一些数据结构(除了uint64_t).

c c++

4
推荐指数
3
解决办法
288
查看次数

在包含tera字节数据的postgres关系表上运行select命令

我有一个3 TB的postgres关系表.现在我想将其内容转储到csv文件.为此,我遵循教程:http://www.mkyong.com/database/how-to-export-table-data-to-file-csv-postgresql/

我的问题是在指定要导出导出的文件并选择语句之后.Postgres显示"被杀".是因为关系表是3TB.如果是,那么我应该如何将我的数据从postgres导出到另一个文件(txt或csv等).如果没有,那么我应该如何找出选择命令被杀死的可能原因.

sql database postgresql

3
推荐指数
1
解决办法
213
查看次数

标签 统计

c ×2

c++ ×2

database ×1

optimization ×1

performance ×1

postgresql ×1

python ×1

sql ×1