小编Jos*_*der的帖子

为什么我的C++编译器没有优化这些内存写入?

我创建了这个程序.它没有任何兴趣,但使用处理能力.

查看输出objdump -d,即使用O3编译,我也可以看到接近结束的三个rand调用和相应的mov指令.

为什么编译器没有意识到内存不会被使用而只是替换下半部分while(1){}?我正在使用gcc,但我最感兴趣的是标准所要求的内容.

/*
 * Create a program that does nothing except slow down the computer.
 */
#include <cstdlib>
#include <unistd.h>

int getRand(int max) {
  return rand() % max;
}

int main() {
  for (int thread = 0; thread < 5; thread++) {
    fork();
  }
  int len = 1000;
  int *garbage = (int*)malloc(sizeof(int)*len);
  for (int x = 0; x < len; x++) {
    garbage[x] = x;
  }
  while (true) …
Run Code Online (Sandbox Code Playgroud)

c++ optimization

4
推荐指数
2
解决办法
234
查看次数

过滤器foo的内存使用情况[2..n] !! 0

假设我有以下功能

small_div :: Int -> Int
small_div n = filter (\x -> n `rem` x == 0) [2..n] !! 0
Run Code Online (Sandbox Code Playgroud)

这个函数的内存使用情况是多少?等效的C代码将是恒定的内存使用量,我相信Haskell的懒惰评估意味着它不会创建[2..n]的更多元素而不是找到第一个除数所需的元素,但ghc足够聪明才能进行跳转像...这样的东西

int small_div(int n) {
    for (int x = 2; x <= n; x++) {
        if (n % x == 0) {
            return x;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

haskell ghc

2
推荐指数
1
解决办法
132
查看次数

打印字符串的标记化

我目前正在编写一种编程语言作为业余爱好.如果有可能让ocamllex打印出它匹配的标记,它会使lexing错误更容易调试,我偶尔会手动将print语句添加到我的规则中,但应该有一种更简单的方法.

所以我要问的是,给定.mll文件和一些输入,是否有自动方式查看相应的令牌?

ocaml ocamllex

2
推荐指数
1
解决办法
713
查看次数

谷歌云计算引擎 /etc/hosts

在我的谷歌云计算引擎中,/etc/hosts 文件会在一段时间后自动覆盖。

请向我建议为什么会发生这种情况以及如何预防。

最初的条目如下:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.128.0.2 instance-1.c.concrete-craft-123421.internal instance-1  # Added by Google
Run Code Online (Sandbox Code Playgroud)

我已将其更改为如下以启动cloudera服务。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#10.128.0.2 instance-1.c.concrete-craft-123421.internal instance-1  # Added by Google

10.128.0.2 instance-1 instance-1
Run Code Online (Sandbox Code Playgroud)

但过了一段时间,原来的条目又重新出现。知道是什么原因造成的吗?

谢谢,
南达

google-compute-engine

2
推荐指数
1
解决办法
4472
查看次数

相当于OCaml中haskell的zipwith

我有一个'a,and one'列表和一个类型的函数'a -> 'b-> 'c.我正在尝试使用我已经拥有的b将该函数应用于a-list的每个元素,并列出'c.在haskell中,我会做一些类似于zipWith(foobar) a-list (replicate (length a) b). 在OCaml中执行此操作的相同方法?

ocaml haskell

1
推荐指数
2
解决办法
477
查看次数

未捕获的TypeError:$不是函数

我无法解决控制台出现此错误的问题:Uncaught TypeError: $ is not a function.这是它指向的代码:

<script type="text/javascript">
$(document).ready(function() {
    $(".linky").click(function(){
        var t = $(this); //<-ERROR POINTS HERE
        var y = $("#0"+t.attr("id")).offset().top;
        $('html,body').animate({scrollTop: y},500);
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激!

javascript jquery

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

循环切片的索引

我正在尝试__getitem__在python中实现类的方法.我想试试像......

def __getitem__(self, key):
  if isinstance(key, int):
    return foo(key)
  elif isinstance(key, slice):
    return [foo(k) for k in key]
  else:
    raise TypeError("Invalid index.")
Run Code Online (Sandbox Code Playgroud)

...但'slice' object is not iterable每当我真正尝试使用切片时,我都会收到错误.在python中执行此操作的正确方法是什么?

python

0
推荐指数
1
解决办法
57
查看次数

在while循环结束时添加一个`;`

#include<stdio.h>

int main()
{
    int i=5;
    while(i--)
    {
        printf("%d\n",i);
    };
    printf("Out of loop\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常!是否;在一个循环的结束并不意味着什么?所以,即使我们添加它,我们也没有任何问题?只是好奇!我认为;在循环结束时添加没有任何意义.

c

-2
推荐指数
2
解决办法
213
查看次数