我有10个以上的任务要执行,系统限制最多可以同时运行4个任务.
我的任务可以像:myprog taskname一样启动
如何编写bash shell脚本来运行这些任务.最重要的是,当一个任务完成时,脚本可以立即启动另一个任务,使运行任务计数始终保持为4.
我在KVM虚拟机中运行了SPECJbb基准测试.它显示仓库2和仓库3之间的吞吐量急剧下降(它们之间的差异只是在并行任务上添加)
然后我在我的来宾虚拟机中使用perf.它表明_spin_unlock_irqrestore具有非常高的采样率.
事件:31K周期
74.89%[内核] [k] _spin_unlock_irqrestore
7.36%perf-1968.map [.] 0x7f84b913e064
6.82%[内核] [k] __do_softirq
6.39%[kernel] [k] handle_IRQ_event
...
似乎只有7.36%的cpu时间运行我的Java程序.为什么_spin_unlock_irqrestore的采样率如此之高?它做了什么?
我读了《算法设计》一书,它对如何将二元匹配转换为独立集问题做了很简短的描述,但我不明白。
有人知道任何详细的材料可以描述这个过程吗?谢谢!
rho x = map (((flip mod) x).(\a -> a^2-1)) (rho x)
Run Code Online (Sandbox Code Playgroud)
此函数将生成无限列表.我在GHCi中测试过,功能类型是
*Main> :t rho
rho :: Integral b => b -> [b]
Run Code Online (Sandbox Code Playgroud)
如果我定义这样的函数
fun x = ((flip mod) x).(\a -> a^2-1)
Run Code Online (Sandbox Code Playgroud)
类型是
*Main> :t fun
fun :: Integral c => c -> c -> c
Run Code Online (Sandbox Code Playgroud)
我的问题是,Haskell如何将函数类型推导为b - > [b]?我们在这个函数中没有任何[]类型的数据.谢谢!