对于xobotos中声称的性能提升感到好奇,我查看了二叉树基准测试代码.
二叉树节点的Java版本是:
private static class TreeNode
{
private TreeNode left, right;
private int item;
}
Run Code Online (Sandbox Code Playgroud)
在C#版本是:
struct TreeNode
{
class Next
{
public TreeNode left, right;
}
private Next next;
private int item;
}
Run Code Online (Sandbox Code Playgroud)
我想知道在这里使用struct的好处是什么,因为Next和Previous指针仍然封装在一个类中.
嗯,有一个叶子节点是纯值类型,因为它们不需要左右指针.在典型的二叉树中,一半节点是叶子,这意味着对象数量减少了50%.不过,所列出的业绩增长似乎要大得多.
问题:还有更多吗?
此外,由于我不会想到在C#中以这种方式定义树节点(感谢Xamarin!),其他数据结构可以从非显而易见的方式使用结构中获益吗?(尽管这有点偏离主题并且是开放式的.)
我正在尝试构建Xamarin在Github上发布的XobotOS源代码,我正在使用根文件夹中README.build文档中提供的指南.我已成功执行自述文件中提到的所有步骤,但由于某种原因,eclipse的第二个实例不生成任何内容.我很感激我能得到的任何帮助.谢谢.
以下是一些可能有用的其他细节:
操作系统:Ubuntu 11.04
Eclipse:Eclipse SDK 4.2(Juno)
Mono :? (我不确定我是否正在使用从源代码构建的黑客版本)
同时我将尝试下载OpenSUSE并再试一次.
我克隆了git://github.com/xamarin/XobotOS.git并按照https://github.com/xamarin/XobotOS/blob/master/sharpen/README的说明进行操作
显然,mono的团队有预建版本,其自述说明是相关的,因为添加提供的站点目录不会在eclipse中的"安装新软件"对话框中添加锐化插件.我想它必须建成.
那么如何构建这个eclipse插件呢?它似乎没有任何ant/maven文件.
xobotos ×3
c# ×2
mono ×2
sharpen-tool ×2
android ×1
benchmarking ×1
build ×1
eclipse ×1
java ×1