小编chr*_*ock的帖子

使用"this->"的性能惩罚?

考虑一个C类中两个类似C++成员函数的示例:

void C::function(Foo new_f) {
    f = new_f;
}
Run Code Online (Sandbox Code Playgroud)

void C::function(Foo new_f) {
    this->f = new_f;
}
Run Code Online (Sandbox Code Playgroud)

这些函数是否以相同的方式编译?使用this->(更多内存访问或其他)是否有任何性能损失?

c++

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

TCP套接字编程错误

学习套接字编程,以下是错误部分的剪切/粘贴.

仅供参考,我正在学习本教程.

Undrestood gethostbyname()回归struct hostent

struct hostent *gethostbyname(const char *name);
Run Code Online (Sandbox Code Playgroud)

使用以下代码.

  1 #include <stdio.h>
  2 #include <sys/types.h>
  3 #include <sys/socket.h>
  4 #include <netinet/in.h>
  5 #include <stdlib.h>
  6 #include <strings.h>
  7 
  8 int main(int argc, char *argv[])
  9 {
 10     int sockfd, portno, n;
 11     struct sockaddr_in serv_addr;
 12     struct hostent *server;
 13 
 14     server = gethostbyname(argv[1]);
 15 
 16     /* compose serv_addr */
 17     bzero( (char *)&serv_addr, sizeof(serv_addr) );
 18     serv_addr.sin_family = AF_INET;
 19     bcopy( (char *)server->h_addr, …
Run Code Online (Sandbox Code Playgroud)

c sockets

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

在MPI_Bcast中排名

MPI_Bcast(void *buffer,  int count,  MPI_Datatype datatype,  int root,  MPI_Comm comm)
Run Code Online (Sandbox Code Playgroud)

此函数不需要rank参数。如何知道每个流程的等级?

我们应该调用MPI_COMM_RANK()广播之前,是否有任何数据结构(如通信器)存储进程等级?

mpi

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

通过3 int查找值的有效方法

我有一些需要存储和有效查找的数据.最好使用C.数据文件的每一行都采用以下格式:

key1 key2 key3 data  
Run Code Online (Sandbox Code Playgroud)

其中key1,key2,key3是整数,并且data是数组float.

我正在考虑将key1,2,3转换为字符串,然后使用C++ std::map将字符串映射到浮点指针:

std::map<string, float*>
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

注意:整数key1,2,3的范围为0-4000,但填充非常稀疏.换句话说,如果你遍历key1中的所有值,你会在0-4000范围内找到<100 unique int.

c c++ lookup dictionary map

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

为什么std :: unordered_map :: emplace()会失败?

我有std::unordered_mapemplace()的目的是通过:

my_map.emplace(std::piecewise_construct,
               std::forward_as_tuple(key),
               std::forward_as_tuple(value1, value2));
Run Code Online (Sandbox Code Playgroud)

这在运行时期间的某个时刻失败,false返回元组的第二个位置.有没有办法获得有关正在发生的事情的更多信息?top记忆没有任何问题.

c++ unordered-map c++11

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

查找可能由于线程锁定而导致的性能问题(可能)

我花了一点时间运行valgrind/callgrind来配置一个使用许多线程进行大量TCP/IP通信的服务器.经过一段时间改善性能后,我意识到在这个特定的测试场景中,该过程不受CPU限制,因此我所看到的性能"改进"没有用.

从理论上讲,CPU应该非常繁忙.我知道它连接的TCP/IP设备不是限制因为服务器在两台机器上运行.一个是PC,另一个是带有Arm处理器的嵌入式设备.即使嵌入式设备的CPU使用率也只有2%左右,但它的交易量却少得多 - 大约十分之一.即使我们尽可能快地获取数据,这两个系统也只能达到2%左右.

我的猜测是一些互斥锁被锁定并且正在阻止一个线程.这是一个纯粹的猜测!系统中有一些线程具有公共数据.也许还有其他可能性,但我该怎么说?

无论如何使用像valgrind/callgrind这样的工具可能会显示系统调用所花费的时间吗?我也可以在Windows上使用Visual Studio 2012运行它,如果那更好的话.

我们可能不得不尝试遍历代码或其他东西,但不确定我们是否有时间.

任何提示赞赏.

谢谢.

c++ linux windows multithreading valgrind

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

从 kdb 中的字符串中提取数字

我对 kdb+q 很陌生。我遇到过从字符串中提取数字的问题。

有什么建议?

例子:

"AZXER_1234_MARKET" should output 1234 //Assume that there is only one number in the 
Run Code Online (Sandbox Code Playgroud)

细绳

kdb q-lang

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

将AppleScript添加到Bash脚本

我有以下Bash脚本.

!#/bin/bash 

fscanx --pdf /scandata/Trust_Report

if [ "$?" = "0" ]; then
Run Code Online (Sandbox Code Playgroud)

我想运行以下AppleScript

tell application "FileMaker Pro Advanced"
    activate
    show window "Trust Reports"
    do script "Scan Trust Report"
end tell



else


   say “It did not scan”



fi
Run Code Online (Sandbox Code Playgroud)

调用此AppleScript的正确语法是什么?

谢谢

bash applescript

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

在if语句中使用管道不起作用

我是shell脚本的新手,并且坚持这个 - 我尝试了这个if子句:

if [ unrar l "$filename" | grep -P "\.(?:r\d\d|r\d\d\d|.rar)$ ];
then...
Run Code Online (Sandbox Code Playgroud)

它没有用,所以尝试了这个调试输出 - 我没有输出到$grep_output:

$grep_output = unrar l "$filename" | grep -P "\.(?:r\d\d|r\d\d\d|.rar)$"
Run Code Online (Sandbox Code Playgroud)

如果我直接在shell上执行它,它的工作没有任何问题:

unrar l "$filename" | grep -P "\.(?:r\d\d|r\d\d\d|.rar)$
Run Code Online (Sandbox Code Playgroud)

我的错误在哪里?提前致谢!

linux bash shell

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

Python解密使用私钥

我有一个加密的字符串。加密是使用 java 代码完成的。我使用以下java代码解密加密的字符串

InputStream fileInputStream = getClass().getResourceAsStream(
                    "/private.txt");
            byte[] bytes = IOUtils.toByteArray(fileInputStream);



private String decrypt(String inputString, byte[] keyBytes) {
        String resultStr = null;
        PrivateKey privateKey = null;
        try {
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(keyBytes);
            privateKey = keyFactory.generatePrivate(privateKeySpec);
        } catch (Exception e) {
            System.out.println("Exception privateKey:::::::::::::::::  "
                    + e.getMessage());
            e.printStackTrace();
        }
        byte[] decodedBytes = null;
        try {
            Cipher c = Cipher.getInstance("RSA/ECB/NoPadding");
            c.init(Cipher.DECRYPT_MODE, privateKey);
            decodedBytes = c.doFinal(Base64.decodeBase64(inputString));

        } catch (Exception e) {
            System.out
                    .println("Exception while using the cypher:::::::::::::::::  " …
Run Code Online (Sandbox Code Playgroud)

python cryptography

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