小编ise*_*dev的帖子

C86上的64位循环性能

我需要使用原始套接字的一些IPv4 ICMP处理代码的Internet Checksum功能(一个补码校验和),我偶然发现了我无法在64位Intel处理器上解释的行为(使用gcc 4.8.2).我想知道是否有人可以对此有所了解.

我使用32位累加器实现了第一个校验和功能,并执行了16位和.然后我使用64位累加器和32位求和实现了相同的功能,认为更少的总和将导致更快的执行.结果是第一个实现的运行速度是第二个实现的两倍(使用O3优化).我简直无法弄清楚为什么......

下面的代码实际上并没有执行准确的校验和(我简化了它),但说明了问题.两者都编译为在64位本机平台上运行64位(LP64:短16位,int 32位,长64位,指针64位).

  1. 32位累加器和16位和

    unsigned short
    cksum_16_le(unsigned char* data, size_t size)
    {
        unsigned short word;
        unsigned int sum = 0;
        unsigned int i;
    
        for(i = 0; i < size - 1; i += 2)
            sum += *((unsigned short*) (data + i));
    
        sum = (sum & 0xffff) + (sum >> 16);
        sum = (sum & 0xffff) + (sum >> 16);
    
        return ~sum;
    }
    
    Run Code Online (Sandbox Code Playgroud)

在相同的10k数据上调用50,000个函数:~1.1秒.

  1. 64位累加器和32位和

    unsigned short
    cksum_32_le(unsigned char* data, size_t size)
    {
        unsigned long word;
        unsigned …
    Run Code Online (Sandbox Code Playgroud)

c algorithm performance 64-bit

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

在mac os x上运行cf命令时获取权限被拒绝错误

我在Mac OS X Yosemite上安装了Cloud Foundry CLI软件包.当我输入cf命令时,从终端界面,我得到以下错误

FAILED
Error read/writing config:  open /Users/viyer/.cf/config.json: permission denied
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我找不到文件config.json.

macos cloud-foundry

7
推荐指数
2
解决办法
4115
查看次数

根据正则表达式过滤数据帧

假设我有一个my_df带有列的数据框'brand',我想放弃品牌所在的任何行toyota或者bmw.

我认为以下会这样做:

my_regex = re.compile('^(bmw$|toyota$).*$')
my_function = lambda x: my_regex.match(x.lower())
my_df[~df['brand'].apply(my_function)] 
Run Code Online (Sandbox Code Playgroud)

但我得到错误:

ValueError: cannot index with vector containing NA / NaN values
Run Code Online (Sandbox Code Playgroud)

为什么?如何使用正则表达式过滤我的DataFrame?

python regex pandas

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

postgres 索引包含“块处意外的零页”异常

我在 pg_log 文件中出现了数千次以下错误。如何解决它们。

index "meeting_pkey" contains unexpected zero page at block 410.Please REINDEX it.
index "faultevent_props_pkey" contains unexpected zero page at block 37290.
index "faultevent_pkey" contains unexpected zero page at block 1704
Run Code Online (Sandbox Code Playgroud)

postgresql logging pg psql

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

缓冲区溢出 - 程序以SIGSEGV信号终止

我正在学习缓冲区溢出漏洞利用.我写了这样一个易受攻击的程序:

#include <stdio.h>
#include <string.h>

main(int argc, char *argv[])
{
    char buffer[80];
    strcpy(buffer, argv[1]);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

很简单的程序.想法是覆盖用于返回libc函数的返回地址start_main.一切都很顺利,我使用GDB来验证返回地址是否被指向shellcode内存中的正确地址覆盖.

但是,当我想要获得一个shell时,会出现:

Program received signal SIGSEGV, Segmentation fault. 0xbffff178 in ?? ()

0xbffff178是返回覆盖的返回地址,它确实指向shellcode我很确定.有帮助吗?

c assembly gdb exploit buffer-overflow

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

在后台运行程序作为sudo

我在linux虚拟机上,我正在尝试运行sudo synaptic &应该在后台启动synaptic 的命令.但是,它不会要求输入密码,程序似乎也没有启动.我之前没有输入密码,因为运行任何其他命令而没有&在最后请求我的密码.问题是什么?

linux sudo

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

错误:'浮动'之前的预期表达式

我想找到100内的所有素数.这是我的代码.

// Find all the prime number within 100.
#include<stdio.h>
#include<math.h>
#include<stdbool.h>
int main() {
   int i,n;
   int j = 0;
   for ( n = 2; n <= 100; ++n) {
      bool isPrime = true;
      for (i = 2; i <= sqrt(float(n)); ++i) {
         if(n % i == 0) {
            isPrime = false;  
            break;
         }
      }
      if(isPrime) {
         ++j;
         printf("%d is a prime number\n",n);
      }
  }
  printf("The total number of prime number within 100 is %d\n",j);
  return 0;
Run Code Online (Sandbox Code Playgroud)

}

编译时,有一个错误. …

c

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

python中super(type,object)和super(supertype,type)之间有什么区别?

不会super(type, object)super(supertype, type)所有人都返回超类的对象type(supertype)吗?有什么不同?

python inheritance class super

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