小编Mic*_*l P的帖子

即使我将输出重定向到/ dev/null,printf仍会有成本吗?

我们有一个包含大量打印消息的守护进程.由于我们正在开发具有弱CPU和其他约束硬件的嵌入式设备,因此我们希望在最终版本中最小化printf消息的任何类型的成本(IO,CPU等).(用户没有控制台)

我的队友和我有分歧.他认为我们可以将所有内容重定向到/ dev/null.它不会花费任何IO,所以感情将是最小的.但我认为它仍将花费CPU,我们最好为printf定义一个宏,这样我们就可以重写"printf"(也许只是返回).

所以我需要一些关于谁是对的意见.Linux是否足够聪明以优化printf?我真的很怀疑.

c linux embedded performance dev-null

60
推荐指数
4
解决办法
4934
查看次数

Typescript 函数声明中的尖括号“<>”是什么意思?

我知道在 TypeScript 中用尖括号“<>”括起来的类是什么意思中有一个几乎类似的问题

但是当我发现它以一种复杂的(对于新手)方式用于在接口内声明函数时,它仍然让我感到困惑。

getContent<K extends keyof ContentMap>(content: K, conf?: ContentMap[K]["conf"]): Promise<Readonly<ContentMap[K]["content"]>>;
Run Code Online (Sandbox Code Playgroud)

尖括号多次使用(甚至递归)。我怎样才能阅读它?

typescript

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

为什么在unordered_map中使用find()比直接读取要快得多?

很难描述,所以我只显示代码:

#include <bits/stdc++.h> 
using namespace std; 

int main() 
{ 
    clock_t start, end; 
    unordered_map<int, int> m;
    long test=0;
    int size = 9999999;
    for (int i=0; i<size/3; i++) {
        m[i] = 1;
    }
    start = clock(); 
    for (int i=0; i<size; i++) {
        //if (m.find(i) != m.end())
            test += m[i];
    }
    end = clock(); 
    double time_taken = double(end - start) / double(CLOCKS_PER_SEC); 
    cout << "Time taken by program is : " << fixed  
         << time_taken << setprecision(5); 
    cout << " sec " << …
Run Code Online (Sandbox Code Playgroud)

c++

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

为什么我们需要 rbegin 和 rend?

因为我们现在有advance()andprev()移动迭代器可以向前或向后移动,我们已经有了begin()and end()

我想知道有没有什么情况我们更好/必须前后移动反向迭代器?

c++

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

用户空间程序中的“易失性”趋向于指示错误是真的吗?

当我搜索“ volatile”及其用户空间使用情况时,发现了Theodore Tso和Linus Torvalds之间的邮件。根据这些大师的说法,在用户空间中使用“ volatile”可能是一个错误?在这里查看讨论

尽管他们有一些解释,但我真的听不懂。谁能用一些简单的语言来解释他们为什么这么说?我们不应该在用户空间中使用volatile?

c linux-device-driver linux-kernel

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

系统锁定或无限循环能够导致重启吗?

我的问题与嵌入式Linux的知识有关.

我刚刚在我的嵌入式项目中观察到一次奇怪的重启,这很容易重现.

当某些条件被触发时,系统会喜欢"冻结".我的意思是,它喜欢遇到一些无限循环或被锁定.持续几秒钟,系统将悄然重启.甚至没有核心转储!

我对这个原因一无所知.锁定或无限循环通常会真正触发Linux重启吗?或者有什么东西可以冻结系统并导致重启没有核心转储发生?

linux embedded embedded-linux

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

类中的 volatile 变量是否会默认设置为 0?

我知道 java 将有一个默认构造函数来将变量初始化为 0,但是 volatile 变量呢?

   class Test { 
       volatile long a;
       volatile double b;
       volatile int c;
    }
Run Code Online (Sandbox Code Playgroud)

我打印它们,每次结果都是 0,但能保证吗?

java

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