小编Sam*_*amB的帖子

对haskell中的大文件进行IO:性能问题

我正在尝试使用Haskell处理大文件.我希望逐字节地浏览输入文件,并在字节之后生成输出字节.当然,我需要使用合理大小的块(几KB)来缓冲IO.我不能这样做,我需要你的帮助.

import System 
import qualified Data.ByteString.Lazy as BL 
import Data.Word  
import Data.List

main :: IO () 
main =     
    do         
        args <- System.getArgs         
        let filename = head args         
        byteString <- BL.readFile filename         
        let wordsList = BL.unpack byteString         
        let foldFun acc word = doSomeStuff word : acc
        let wordsListCopy = foldl' foldFun [] wordsList
        let byteStringCopy = BL.pack (reverse wordsListCopy)
        BL.writeFile (filename ++ ".cpy") byteStringCopy
    where
        doSomeStuff = id
Run Code Online (Sandbox Code Playgroud)

我命名此文件TestCopy.hs,然后执行以下操作:

$ ls -l *MB
-rwxrwxrwx 1 root root 10000000 2011-03-24 …
Run Code Online (Sandbox Code Playgroud)

io haskell lazy-evaluation bytestring

6
推荐指数
2
解决办法
1876
查看次数

GCC 4.4/4.5 unique_ptr对unordered_set/unordered_map不起作用

我有什么地方可以证实吗?我不确定这是GCC还是我的代码的问题.例如,以下代码无法编译:

#include <unordered_set>
#include <memory>
using namespace std;

int main() {
    unordered_set<unique_ptr<int> > s;
    unique_ptr<int> p(new int(0));
    s.insert(move(p));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误信息太大,我不想放在这里.GCC版本是4.5.3,编译标志是-std = gnu ++ 0x.也在4.4.5上测试过.

c++ gcc g++ c++11

6
推荐指数
2
解决办法
2259
查看次数

执行__builtin_va_start(v,l)

走下glibc中可变宏的兔子洞,我已经到达了/usr/lib/gcc/x86_64-linux-gnu/4.8.2/include/stdarg.h那里,例如,va_start宏被定义为:

#define va_start(v,l) __builtin_va_start(v,l)

但我一直在努力寻找__builtin_va_start(v,l)没有成功的实际实施.我已经用Google搜索并为它进行了搜索,而我所获得的最远的是微软对Visual Studio 的实现,我认为它并没有根本不同.

有谁知道glibc的实现在哪里?

TIA.

c gcc variadic-functions

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

使用 C 在 OS X 中获取其他进程的 argv

我想获得其他进程的argv,例如ps。

我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10.4.11。

首先,我阅读了 ps 和 man kvm 的代码,然后编写了一些 C 代码。

#include <kvm.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/sysctl.h>
#include <paths.h>

int
main(void) {
    char errbuf[1024];
    kvm_t *kd = kvm_openfiles(_PATH_DEVNULL, NULL, _PATH_DEVNULL, O_RDONLY, errbuf);
    int num_procs;
    if (!kd) { fprintf(stderr, "kvm_openfiles failed : %s\n", errbuf); return 0; }
    struct kinfo_proc *proc_table = kvm_getprocs(kd, KERN_PROC_ALL, 0, &num_procs);

    for (int i = 0; i < num_procs; i++) {
        struct kinfo_proc *pproc = &proc_table[i]; …
Run Code Online (Sandbox Code Playgroud)

c macos argv

5
推荐指数
1
解决办法
5785
查看次数

使用pdflatex从LaTeX Source嵌入PDF格式的字体

我需要在输出PDF中嵌入我在TeX文档中使用的字体.我正在使用pdflatex进行TeX处理,使用TextMate作为编辑器.

我找不到任何关于如何在PDF文档中嵌入我需要的字体的参考.

fonts pdflatex

5
推荐指数
1
解决办法
8328
查看次数

优化是否会影响使用其PDB调试VC++应用程序的能力?

为了能够正确调试发布版本,需要一个PDB文件.当编译器使用不同类型的优化(FPO,PGO,内部函数,内联等)时,PDB文件是否会变得不太可用?如果是这样,优化效果是否严重或仅仅导致相邻的代码行混淆?

(我正在使用VC2005,并且总是选择可调试性而非优化性能 - 但问题是一般的)

c++ optimization visual-studio pdb-files

5
推荐指数
1
解决办法
3387
查看次数

生成调试信息(pdb)使我的应用程序在运行时变慢?

在.NET应用程序中生成调试信息(pdb)使我的应用程序在运行时更慢?或者他们只是在应用程序崩溃时进入游戏?

.net debugging performance pdb-files

5
推荐指数
1
解决办法
804
查看次数

windbg:私有pdb符号

(私有pdb符号)和(pdb符号)之间有什么区别?

windows windbg pdb-files

5
推荐指数
1
解决办法
2708
查看次数

C# - 设置 pdb 的路径

有什么方法可以在 Visual Studio 2008 下的 C# 中设置程序数据库文件 (*.pdb) 的自定义路径?对于 C++,这非常简单(项目设置 -> 链接器 -> 调试 -> 生成程序数据库文件),但出于某种原因,微软似乎已为 C# 删除(或隐藏)它。

我知道“标准”用法是将 pdb 放在可执行文件旁边的 bin 目录中,但是该目录变得非常混乱,所以我真的希望它们位于 /obj 中,这就是我总是习惯在 C++ 中做。

谢谢!

c# path visual-studio pdb-files

5
推荐指数
1
解决办法
6175
查看次数

如何在C程序中设置命令行参数,以便在用户键入"ps aux"时可见?

键入"ps aux"时,ps命令显示运行程序的命令参数.有些程序会将此更改为指示状态的方式.我已经尝试过更改argv []字段,但它似乎不起作用.是否有一种标准方法来设置命令行参数,以便在用户键入ps时显示它们?

也就是说,这不起作用:

int main(int argc,char **argv)
{
    argv[0] = "Hi Mom!";
    sleep(100);
}

09:40 imac3:~$ ./x &
[2] 96087
09:40 imac3:~$ ps uxp 96087 
USER      PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
yv32      96087   0.0  0.0  2426560    324 s001  S     9:40AM   0:00.00 ./x
09:40 imac3:~$ cat x.c
Run Code Online (Sandbox Code Playgroud)

c posix ps argv

5
推荐指数
1
解决办法
574
查看次数