我对微小的优化并不感兴趣,因为速度很低.我对alpha-beta搜索最重要的启发式方法感兴趣.而评估功能最重要的组成部分.
我对具有最大(改进/ code_size)比率的算法特别感兴趣.(不是(改进/复杂性)).
谢谢.
PS杀手移动启发式是一个完美的例子 - 易于实现和强大.启发式数据库太复杂了.
更新:请阅读代码,它不是关于计算一个int中的位
是否有可能通过一些聪明的汇编程序来提高以下代码的性能?
uint bit_counter[64];
void Count(uint64 bits) {
bit_counter[0] += (bits >> 0) & 1;
bit_counter[1] += (bits >> 1) & 1;
// ..
bit_counter[63] += (bits >> 63) & 1;
}
Run Code Online (Sandbox Code Playgroud)
Count 是在我算法的最内层循环中.
更新: 架构:x86-64,Sandy Bridge,因此可以使用SSE4.2,AVX1和旧技术,但不能使用AVX2或BMI1/2.
bits 变量几乎是随机位(接近半零和一半)
我不仅想知道用户方面的差异,还想知道Linux内核实现中的差异/常见部分.
我正在考虑使用Haxe代替AS3.
有什么不同之处?我可以考虑一下:
你们中有没有人对Haxe黑暗面有所了解吗?
什么是冒险?我听说:
Haxe足够大,应该有更多.Haxe的优点是什么?
编辑:
如果没有真正的缺点那么为什么Haxe没有取代AS3?
我或多或少了解MPV是如何工作的.但我没有得到什么课:
QAbstractItemModelQAbstractItemViewQAbstractItemDelegate/QItemDelegate可以帮我吗?
如果这是相关的,我使用
QGraphicsScene/ QGraphicsView与一些元素(游戏板的可视化表示),用户可以交互,而交互逻辑(游戏规则)被封装在其他类中.
add_definitions添加了在执行cmake(not make)时修复的定义.执行make(而不是cmake)时如何定义它们?定义的值将是自定义命令的输出.
使用SCons的每个项目似乎都在重新发明轮子.我很乐意采用某些目录布局和/或变体构建(调试/发布)和/或测试框架和/或最佳实践的解决方案.
即使是一些不太简单的例子也会有所帮助.
我有OCaml的经验.您必须为每个要用于转换类型的函数编写存根,甚至是C int < - > OCaml int.连接很痛苦.我甚至不想要映射C++对象.
其他流行语言怎么样?总是痛苦吗?
编辑:
请避免重复.并分别表示状态C和C++接口功能.
编辑2:
请具体说明."X可以调用C"并不会提供太多信息.
我做常规的事情:
如果execvp因为没有找到cmd而失败,我怎么能在父进程中注意到这个错误?
在数据库中模拟Tagged union的最佳方法是什么?我在谈论这样的事情:
create table t1 {
vehicle_id INTEGER NOT NULL REFERENCES car(id) OR motor(id) -- not valid
...
}
Run Code Online (Sandbox Code Playgroud)
其中vehicle_id将在汽车表或电机表中为id,并且它将知道哪个.
(假设电动机和汽车桌没有任何共同点