小编Bio*_*441的帖子

什么是引导方法?

我一直在阅读关于java8 lambdas实现的演示文稿http://fr.slideshare.net/czechscala/java-8-under-the-hood

LambdaMetaFactory包含用于将lambda表达式转换为功能接口对象的引导方法.

这些bootstrap methods是什么,它们是否相关invokedynamic

java

11
推荐指数
2
解决办法
2351
查看次数

如何实现便携式指针比较和交换?

compareAndSwapStackOverflow答案中找到了这段代码:

boolean CompareAndSwapPointer(volatile * void * ptr,
                              void * new_value,
                              void * old_value) {
#if defined(_MSC_VER)
   if (InterlockedCompareExchange(ptr, new_value, old_value) == old_value) return false;
   else return true;
#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40100
   return __sync_bool_compare_and_swap(ptr, old_value, new_value);
#else
#  error No implementation
#endif
}
Run Code Online (Sandbox Code Playgroud)

这是使用便携式快速代码的最合适方式(除了程序集内联).

此外,一个问题是这些特定builtin方法具有不同的参数并从一个编译器返回另一个编译器的值,这可能需要一些额外的更改,如if then else本示例中所示.

另一个问题是这些builtin方法在机器代码级别中的行为,它们的行为是否完全相同?(例如使用相同的装配说明)

注意:另一个问题是,如果有许多支持的平台不仅仅是(WindowsLinux)在这个例子中.代码可能会变得非常大.

c intrinsics

8
推荐指数
1
解决办法
686
查看次数

如何禁用JIT编译器的内在函数用法?

我正在做一些性能测试JVM,我想测量内在函数使用的影响.

我想在JIT不进入解释模式的情况下禁用某些方法使用内在函数.有没有办法做到这一点 ?谢谢

java jit jvm

7
推荐指数
1
解决办法
690
查看次数

arrayIndexScale返回的值是什么?

我想知道sun.misc.unsafe.arrayIndexScale的用法是什么,javadoc据说:

报告在给定数组类的存储分配中寻址元素的比例因子.但是,"窄"类型的数组通常不能像访问器那样正常工作getByte(java.lang.Object,int),因此这类的比例因子报告为零.

此方法返回一个int,但我不确定该值的含义.

java

6
推荐指数
1
解决办法
772
查看次数

内在函数和内联对Lambda性能的影响?

我已经使用了这个基准测试java8-lambda-performance-test,在运行它时我做了以下几点:

1.Disabled内在用法

2.Disabled Inlining

3.Disabled编译模式

我发现禁用两个第一次优化对结果没有影响.

这很奇怪,而且当运行基准和打印内在时,我没有找到任何对内在的调用 compiledLambdaForm

由于数学内在函数大量使用_min,_pow ...我期待禁用内在函数会降低性能

java lambda jvm

6
推荐指数
1
解决办法
285
查看次数

如何解读Kcachegrind图?

我已经开始Kcachegrind用于性能分析.但我不明白GUI和输出图.

例如,此调用图

在此输入图像描述 SignatureIterator::iterate_parameters()我不明白9.25%指的是什么?5 198x意味着多少次SignatureIterator::iterate_parameters()SignatureIterator::parse_type()?100%in是什么意思Symbol::byte_at(int) const?什么是ELF Object

注意:在官方文档http://kcachegrind.sourceforge.net/html/CallGraph.html中,但仍然不明白是什么the caller distance to the function

kcachegrind

6
推荐指数
1
解决办法
3153
查看次数

如何获取/ proc/[pid]/status的信息

是否有定义的结构来获取特定进程的此文件的每个字段而不是解析文件?

linux system-calls

6
推荐指数
1
解决办法
1万
查看次数

CLOCK_REALTIME有什么用?

我正在阅读CLOCK_REALTIME和之间的区别CLOCK_MONOTONIC

CLOCK_REALTIME和CLOCK_MONOTONIC之间的区别?

CLOCK_REALTIME在时间的不连续性,可以跳向前和向后:是,在这个时钟的错误?如何使时间不一致的时钟可靠?

c gettime clock

6
推荐指数
1
解决办法
2760
查看次数

链接来自不同 GCC 版本的编译目标文件是否安全?

将使用不同 GCC 版本编译的源生成的对象链接到共享库是否安全?

我想不会,但是万一使用的 GCC 在代码生成和优化改进方面没有区别呢?有信息可以知道哪个 GCC 编译器不向后兼容吗?

我的问题也涉及二进制文件,我查看了

https://gcc.gnu.org/onlinedocs/gcc/Compatibility.html

据我了解,不同的GCC版本只要符合相同的ABI就可以兼容

gcc compilation

5
推荐指数
1
解决办法
838
查看次数

比较或替换操作的时间复杂度是多少?

在估计某个算法的时间复杂度时,我们用伪代码来说:

for (int i=0; i<n; i++) ---> O(n)
  //comparison? ---> ?
  //substitution ---> ?
 for (int i=0; i<n; i++) ---> O(n)
  //some function which is not recursive
Run Code Online (Sandbox Code Playgroud)

在这种情况下,这些指令的时间复杂度是O(n)因为我们迭代输入n,但是比较和替换操作是否是恒定时间,因为它们不依赖于n

谢谢

algorithm time-complexity

5
推荐指数
2
解决办法
2668
查看次数