我写了下面提到的代码.代码检查每个字节的第一位.如果每个字节的第一位等于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拆包的形式.
我有一个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时,我不知道应该如何处理它.
我想在数组中存储指向文件行号的指针,之后我想从磁盘中检索指定的行.我无法直接存储指向行号的指针,因为当我读回文件时,内存位置会发生变化.所以,我正在存储文件开头的偏移量.为了存储偏移,我使用"uint_64t".但是,由于我的文件大小为200GB,因此"uint_64t"无法表示所有偏移量.
我有以下问题:
除了存储偏移量之外,还有其他一些方法可以存储指向存储在磁盘上的文件的指针.
我可以使用其他一些数据结构(除了uint64_t).
我有一个3 TB的postgres关系表.现在我想将其内容转储到csv文件.为此,我遵循教程:http://www.mkyong.com/database/how-to-export-table-data-to-file-csv-postgresql/
我的问题是在指定要导出导出的文件并选择语句之后.Postgres显示"被杀".是因为关系表是3TB.如果是,那么我应该如何将我的数据从postgres导出到另一个文件(txt或csv等).如果没有,那么我应该如何找出选择命令被杀死的可能原因.