小编Edg*_*ian的帖子

为什么这个基于Lwt且看似并发的代码如此不一致

我正在尝试创建Lwt的并发示例,并想出了这个小样本

let () =
  Lwt_main.run (
      let start = Unix.time () in
      Lwt_io.open_file Lwt_io.Input "/dev/urandom" >>= fun data_source ->
      Lwt_unix.mkdir "serial" 0o777 >>= fun () ->
      Lwt_list.iter_p
        (fun count ->
         let count = string_of_int count in
         Lwt_io.open_file
           ~flags:[Unix.O_RDWR; Unix.O_CREAT]
           ~perm:0o777
           ~mode:Lwt_io.Output ("serial/file"^ count ^ ".txt") >>= fun h ->
         Lwt_io.read ~count:52428800
                     data_source >>= Lwt_io.write_line h)
        [0;1;2;3;4;5;6;7;8;9] >>= fun () ->
      let finished = Unix.time () in
      Lwt_io.printlf "Execution time took %f seconds" (finished -. start))
Run Code Online (Sandbox Code Playgroud)

编辑:要求50GB它是:"然而这是非常缓慢,基本无用.内部绑定是否需要以某种方式强制?"

编辑:我最初写的要求50 GB,它从未完成,现在我有一个不同的问题,要求50MB,执行几乎是瞬间和du -sh报告只有80k的目录大小.

编辑:我也尝试使用相同的错误结果显式关闭文件句柄的代码. …

ocaml lwt

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

OCaml共享另一个共享库的lib

我正在探索一些冒险的想法.

TL:DR; gnumake能够使用可加载的模块,我试图使用该C屏障来使用OCaml但是在OCaml运行时初始化时遇到了麻烦.

我有这个OCaml代码:

(* This is speak_ocaml.ml *)
let do_speak () =
  print_endline "This called from OCaml!!";
  flush stdout;
  "Some return value from OCaml"

let () =
  Callback.register "speak" do_speak
Run Code Online (Sandbox Code Playgroud)

我也有这个C代码:(是的,需要使用额外的CAML宏,但这里不相关)

#include <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>

#include <gnumake.h>
#include <caml/mlvalues.h>
#include <caml/callback.h>
#include <caml/memory.h>
#include <caml/alloc.h>

int plugin_is_GPL_compatible;

char *ocaml_speaker(const char *func_name, int argc, char **argv)
{
  char *answer =
    String_val(caml_callback(*caml_named_value("speak"), Val_unit));

  printf("Speaking and got: %s\n", answer);
  char *buf = …
Run Code Online (Sandbox Code Playgroud)

c ocaml shared-libraries gnu-make

5
推荐指数
0
解决办法
192
查看次数

Git子树通常是--recursive git repo

我创建了一个子树:

git subtree add --prefix etc/theos https://github.com/theos/theos.git master --squash

但这个回购通常是用--recursive旗帜克隆的,我注意到回购中应该存在的东西没有.

我没有看到--recursive子树的标志.我怎样才能让它发挥作用

git git-subtree

5
推荐指数
0
解决办法
355
查看次数

Python采用什么版本的C?

据我所知,Python的规范版本是用C89编写的.我有兴趣可能稍后在Python上编写一些基于C的扩展,但是我对CI应该使用的版本(在Python文档中找不到)感到困惑.由于Python在C89中,我应该在C89中编码还是C11代码也可以工作?

python python-2.7

4
推荐指数
1
解决办法
331
查看次数

在OS X上用sed和shell变量替换路径

我在Mac OS X上并使用sed进行就地替换.

基本上我有这个:

#!/bin/sh -e
PREFIX="$1"

sed -i bak -e 's|OCAMLDIR|"${PREFIX}"|g' ocamloptrev
Run Code Online (Sandbox Code Playgroud)

PREFIX路径在哪里,因此我正在使用|.

不幸的是,文件路径中的变量没有像我预期的那样得到评估,我最终得到:

OCAMLC="${PREFIX}"/bin/ocamlopt
Run Code Online (Sandbox Code Playgroud)

如何才能${PREFIX}sed命令进行正确的评估?

shell sed string-interpolation

4
推荐指数
2
解决办法
2665
查看次数

Python - 在Dict中打印键的字符串

我的代码如下,

prices = {'banana':'4', 'apple':'2', 'orange':'1.5', 'pear':'3'}
stock = {'banana':6, 'apple':0, 'orange':32, 'pear':15}

print(prices.keys)
print("price :" + str(prices.values))
print("stock :" + str(stock.values))
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我会吐出一个看起来好像我问的类型.是什么赋予了?

实际上,我的代码逻辑是错误的.

我希望代码吐出以下内容

关键价格:价值股票:价值

例如,这应该是它的样子

苹果价格:2库存:0

python python-3.x

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

Python元组列表,需要解压缩和清理

假设你有一个列表如

x = [('Edgar',), ('Robert',)]

什么是最有效的方法来获得字符串'Edgar''Robert'

例如,不要真的需要x [0] [0].

python python-2.7

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

Java不打印默认的单位化值

我理解只声明但未初始化的Java对象默认为该null值,但为什么以下编译并打印出null?

String a;
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)

java

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

熊猫重新索引数据框架问题

说我有以下数据框,

         A       B
0  1986-87  232131
1  1987-88  564564
2  1988-89  123125
               ...
Run Code Online (Sandbox Code Playgroud)

等等.

我正试图重新索引<myFrame>.set_index('A'),以便我得到

                B
  1986-87  232131
  1987-88  564564
  1988-89  123125
Run Code Online (Sandbox Code Playgroud)

但我一直这样做:

               B
       A       
 1986-87  232131
 1987-88  564564
 1988-89  123125
Run Code Online (Sandbox Code Playgroud)

因为我试过其他的重建索引方法,这很烦人.我不确定A它实际上代表的是什么,因为它没有出现在<myFrame>.columns或者<myFrame>.index做什么<myFrame>['B'][0]给了我232131,所以A在这个重新索引的数据框架中是什么?如何从开头A正确索引或在错误的reindex中摆脱这个奇怪数据框.

python pandas

3
推荐指数
2
解决办法
2万
查看次数

冗余使用发电机?(蟒蛇)

说我们做了以下事情:(忽略如果这是愚蠢的,或者如果有更好的方法,这是一个简化的例子)

from itertools import izip

def check(someList):
    for item in someList:
        yield item[0]

for items in izip(check(someHugeList1), check(someHugeList2)):
    //some logic
Run Code Online (Sandbox Code Playgroud)

由于check是一个生成器,使用izip是多余的?使用普通拉链会一样好吗?

python iterator generator python-2.7

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