有没有办法检查stdinRust中的数据是否可用,或者是否使用当前可用的数据进行立即返回的读取?
我的目标是能够读取由shell中的光标键产生的输入,该shell被设置为立即返回所有读取数据.例如,相当于:stty -echo -echok -icanon min 1 time 0.
我想一个解决方案是使用ncurses或类似的库,但我想避免任何类型的大依赖.
到目前为止,我只得到阻止输入,这不是我想要的:
let mut reader = stdin();
let mut s = String::new();
match reader.read_to_string(&mut s) {...} // this blocks :(
Run Code Online (Sandbox Code Playgroud) (不幸的是,我缺少基本的词汇表来表达我的问题.所以,请在更精确的术语有用的地方纠正我.)
我使用R对虚拟机的基准测试结果进行非常基本的统计分析,我经常希望根据某些标准来规范化我的数据.
目前我的问题是我想要像以下一样工作:
normalized_data <- ddply(bench, ~ Benchmark + Configuration + Approach,
transform,
Ratio = Time / Time[Approach == "appr2"])
Run Code Online (Sandbox Code Playgroud)
所以,我真正想要的是计算相应测量对之间的加速.
bench是一个包含时间,基准,配置和方法列的数据框,包含基准,配置和方法的所有可能组合的100个测量.现在我有两种方法,想要加速"appr2"/"appr1".因此,只看一个特定的基准测试和一个特定的配置,我在我的数据框中有100个"appr1"和100个"appr2"的测量值.但是,R给出了以下由给定查询产生的错误:
Error in data.frame(list(Time = c(405.73, 342.616, 404.484, 328.742, 403.384, :
arguments imply differing number of rows: 100, 0
Run Code Online (Sandbox Code Playgroud)
理想情况下,我的查询结果将产生一个新的数据框,其中包含三列SpeedUp,Benchmark,Configuration.基于此,我将能够计算均值,置信区间等.
但目前,基本问题是如何表达这种规范化.对于另一个数据集,我能够像这样计算一个标准化值,Time.norm = Time / Time[NumCores == min(NumCores)]但看起来只是偶然起作用,至少我不明白其中的区别.
任何提示都很感激.(特别是为这些问题寻找解决方案的正确术语.)
编辑:感谢Chase的提示,这里是一个最小的数据集,它应该在结构上与我得到的相同,并且它表现出与上面的查询相同的行为.
bench <- structure(list(Time = c(399.04, 388.069, 401.072, 361.646),
Benchmark = structure(c(1L, 1L, 1L, 1L), .Label = c("Fibonacci"), class = "factor"),
Configuration = structure(c(1L, 1L, 1L, 1L), .Label …Run Code Online (Sandbox Code Playgroud) 有没有办法像使用C++ 11(或更高版本)工具的任何其他线程一样处理主线程?具体来说,我正在寻找能够join()与主线程.所以,基本上,我想做类似的事情main_thread.join(),但不知道如何获取main_thread对象.
线程构造函数似乎没有提供任何基于例如获得的线程id的工具get_id().该this_thread命名空间还只提供最低限度的功能,但是偏出例如join(),这正是我所期待的.
什么public static <X> void main(String[] args)代表什么?我试图理解,但没有得到.我知道public static void main(String[] arg).提前致谢.