小编pee*_*ush的帖子

与自我有关的象征性联系


这令人惊讶

lrwxrwxrwx 1 root root    1 2011-08-23 17:18 common -> .
Run Code Online (Sandbox Code Playgroud)

这表示目录具有自身的符号链接.
但我无法弄清楚这样做的目的.
我在firefox包中找到了这个.

那么这种联系的目的是什么?

unix symlink

3
推荐指数
1
解决办法
1685
查看次数

如何在Make中使用ccache?

我有一个源目录,它使用makefile来编译代码.此makefile/configure文件不是为ccache兼容性而编写的.所以我想用ccache.我在.bashrc中创建了别名alias gcc='ccache gcc',但是Makefile仍然没有考虑gcc的这个定义.那么有什么我可以做而不触摸Makefile/configure文件,ccache gcc而不是gcc.CC ='ccache gcc'./configure也不是一个选项,因为它不要求CC.

如果我写Makefile然后我可以提供$ {gcc),但这不是一个选项,因为我不是在写Makefile.有什么办法可以让我们不需要在源文件中更改任何内容,但仍然可以启用ccache编译.

c makefile ccache

3
推荐指数
3
解决办法
6959
查看次数

Java与C版相同的算法

我在Java中实现了一个程序,对于特定的测试用例来说,令人惊讶的是需要177M内存(我没有,因为程序是由一个网站测试的).

问题是找出字符串S2中存在于字符串S1中的所有字符.还有N个这样的案例.

public static void main(String[] args) throws Exception {
    BufferedReader bin = new BufferedReader (new InputStreamReader (System.in));
    String jewel, stone;
    int t = Integer.parseInt (bin.readLine());
    int count;
    int i;

    while (t-->0) {
        count = 0;
        jewel = bin.readLine();
        stone = bin.readLine();
        for (i=0; i<stone.length(); i++) {
            if (jewel.indexOf(stone.charAt(i)) !=-1) {
                count++;
            }
        }
        System.out.println(count);
    }
}
Run Code Online (Sandbox Code Playgroud)

我也不明白,它是如何使用177M的ram.即使他们正在测试一个巨大的文件,那么也只有2个字符串.但是代码完全正常,测试用例通过了.

由于java程序占用了大量内存,所以我打算编写一个相同程序的C版本.以下是:

int main ()
{
  char * pch;
    char jewel[100], stone[100];
    int n;
    scanf("%d",&n);
    int len;    
    int tp;
    int count = 0; …
Run Code Online (Sandbox Code Playgroud)

c java performance

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

为什么我的浮动除以0.00390625?

float a=67107842,b=512;
float c=a/b;
printf("%lf\n",c);
Run Code Online (Sandbox Code Playgroud)

为什么c131070.000000而不是正确值131070.00390625?

c

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

c代码输出意外/预期的行为

这段代码有什么问题?谁有人解释一下?

#include <stdio.h>
#include <malloc.h>

#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
  int array[] = {23,34,12,17,204,99,16};

  int main()
  {
      int num;
      int d;
      int size = TOTAL_ELEMENTS -2;
      printf("%d\n",(TOTAL_ELEMENTS-2));

      for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
          printf("%d\n",array[d+1]);

      return 0;
  }
Run Code Online (Sandbox Code Playgroud)

当我打印它给5,但内部循环发生了什么?

c

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

锁定免费的CAS混淆

嘿伙计们,
我正在阅读这些所谓的非阻塞技术,但我几乎没有怀疑:

1)使用原子操作执行无锁操作,现在这些原子操作是什么?我的意思是在一定程度上他们还需要锁定吗?那么这种无锁方法是否只能让我们以更精细的粒度锁定?
2)他们说非阻塞列表,现在应该是一个非阻塞列表:如果同一个插入的多个线程出现,只有一个会成功,另一个会做其他工作吗?,但是如果除了插入一个节点,其他线程别无选择,那么它是如何进行非阻塞的呢?它不会被阻止,直到前一个完成?
3)在java中,它们如何进行原子操作?他们不是这样做的, synchronized boolean ..... 因为他们正在获取锁定即同步部分,它是如何无锁的?4)CAS通常用于实现原子操作.那么cas不允许在同一个对象上只发生一个操作,并停止(阻止)那些想要在同一个对象上操作的人吗?很抱歉这么多疑惑......请澄清......

编辑 当我有更新结构时会发生什么?它也受硬件支持吗?没有权利,那么语言是否会在某种程度上获取锁定以使这些结构操作成为原子?
关于JAVA:有AtomicReference和AtomicReferenceFieldUpdater类,它为对象(结构或任何类型的对象)提供更新,所以我们可以在性能方面比较它们,我的意思是速度吗?在tern中都使用了使用Native类的Unsafe类.

java cas multicore lock-free

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

原子操作与STM


我正在尝试这两个基准测试(软件事务内存和原子操作,我猜两者都不一样),虽然我没有做太多使用STM(似乎很难使用),但我成功尝试计数基准,即所有线程将共享计数器递增50,000次,并注意到原子操作比STM更好.
所以我想知道,因为STM尚未完全开发,它们在现实情况下是否比原子操作表现良好?
有一个人因为表现而转向其他人吗?请分享信息..
我在网上找到的相关日志是没有锁的并发编程

PS我使用JAVA作为编程语言.STM: - 多节.AtomicOperatinn:AtomicInteger.

java concurrency performance multicore atomic

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

标签 统计

c ×4

java ×3

multicore ×2

performance ×2

atomic ×1

cas ×1

ccache ×1

concurrency ×1

lock-free ×1

makefile ×1

symlink ×1

unix ×1