有效的方式来旋转golang切片

我需要一个函数来有效地扭转golang分得一杯羹。 (我的具体需要的是扭转[]字节的前缀)。

我查了一下,从有效进入的例子有objdump -Sd并生成检查数组索引很多锅炉板。 即使交换效率太低。

--------------解决方案-------------

首先,我不得不说:第一个配置文件。 这真的是在你的代码的瓶颈? 如果是,你有几种选择。

1)禁止的边界检查。 我觉得有一个未公开的编译器标志,轮流片边界检查的。 我找不到它此刻虽然。 (编辑-B根据OP)。

2)用C(或汇编)程序,您可以编写下[586] c和链接在你去包(你需要包括一些头$GOROOT/src/pkg/runtime ),就像这样:

#include "runtime.h"
mypackage·swapslice(Slice s) {
int i, j;
//Not a real swap loop
for (i = 0, j = s.len - 1; i < j; i++, j--)
//swap s.arr[i] and s.arr[j];
}

分类: 时间:2015-03-15 人气:0
本文关键词: 反向,微型优化,走
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.689 (s). 10 q(s)