小编nnn*_*mmm的帖子

在输出中打印Python版本

如何在输出中打印当前Python安装的版本号?

python

429
推荐指数
5
解决办法
31万
查看次数

如何在 Rust 中按降序对 Vector 进行排序?

在 Rust 中,a 的排序方法Vec总是从小到大排列元素。从大到小排序的通用方法是什么?

如果你有一个数字向量,你可以提供一个密钥提取函数,像这样“反转”数字:

let mut numbers: Vec<u32> = vec![100_000, 3, 6, 2];
numbers.sort_by_key(|n| std::u32::MAX - n);
Run Code Online (Sandbox Code Playgroud)

但这不是很清楚,并且将该方法扩展到其他类型(如字符串)并不简单。

sorting rust

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

当列是JSON数组而不是字符串时如何过滤ANTD表

我有一个带有2列的antd表,需要在第一列上进行过滤,并在第二列上搜索文本。

根据我的代码,该应用程序呈现良好。请注意,标签字段是一个json数组,而不是文本字段,因此我想这与错误有关。

更新了1个代码。

import React, { Component } from 'react';
import {  Table, Tag, Button, Icon, Input} from 'antd';
import { adalApiFetch } from '../../adalConfig';
import Notification from '../../components/notification';
import Highlighter from 'react-highlight-words';

class ListPageTemplatesWithSelection extends Component {

    constructor(props) {
        super(props);
        this.state = {
            data: [],
            filteredInfo: null,
            sortedInfo: null,
            searchText: ''
        };
        this.handleChange= this.handleChange.bind(this);
        this.clearFilters= this.clearFilters.bind(this);
        this.clearAll= this.clearAll.bind(this);
        this.getColumnSearchProps= this.getColumnSearchProps.bind(this);
        this.handleSearch= this.handleSearch.bind(this);
        this.handleReset= this.handleReset.bind(this);

    }

    handleSearch (selectedKeys, confirm){
      confirm();
      this.setState({ searchText: selectedKeys[0] });
    }

    handleReset(clearFilters){
      clearFilters();
      this.setState({ searchText: '' …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs antd

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

Cargo 的 build 和 rustc 命令有什么区别?

我是 Rust 的新手,我刚刚通过cargo new my_project. 我注意到cargo 提供了这两个命令行选项:

  • build:编译本地包及其所有依赖项
  • rustc:编译一个包及其所有依赖项

我认为后者可用于编译我机器上的任何项目,而前者只能在当前工作目录中使用。那是对的吗?还有其他区别吗?不带附加参数运行这两个命令会给我完全相同的输出。

rust rust-cargo

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

为什么“如果让我们”使用Mutex阻止执行?

我在工作时遇到了这种僵局 Mutex

包含Mutex类型字段的结构如下:

struct MyStruct {
    inner_map: Arc<Mutex<HashMap<i32, Vec<i32>>>>,
}
Run Code Online (Sandbox Code Playgroud)

我已经通过互斥锁访问了此内部地图:

impl MyStruct {
    fn test_lock(&self, key: &i32) {
        let my_option = self.inner_map.lock().unwrap().remove(key);
        if let Some(my_vec) = my_option {
            for _inner_val in my_vec {
                self.inner_map.lock().unwrap();
                println!("Passed test_lock1");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这没有死锁,可以正常工作,因为我从中删除了价值HashMap并获得了所有权HashMap


与test_lock非常相似的函数,仅具有区别,而不是my_option在动态if let调用中使用已声明的变量删除值,并且在这种情况下会导致死锁

impl MyStruct{
    // Why this function goes to deadlock since remove gets the ownership of the data?
    fn test_lock2(&self, key: &i32) {
        if let Some(my_vec) …
Run Code Online (Sandbox Code Playgroud)

concurrency mutex rust

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

在 Bash 中将目录的别名定义为 cd 的参数

我正在使用 Windows 10 Linux 子系统 (Ubuntu Bash)。

我想从 Ubuntu Bash 访问我的 Windows 文件夹。

我要访问的文件夹是(注意名称中有空格):

/mnt/c/Users/some folder1/some folder2/destination - folder/
Run Code Online (Sandbox Code Playgroud)

我现在在 Bash 中所做的是:

~$ cd /mnt/c/Users/some\ folder1/some\ folder2/destination\ -\ folder/
Run Code Online (Sandbox Code Playgroud)

由于目录太深,我不想每次都输入长命令。所以我想为该文件夹定义一个别名。

在 Bash 中,我创建了一个文件~/.bash_aliases. 文件中~/.bashrc有以下命令:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
Run Code Online (Sandbox Code Playgroud)

接下来,我想在中添加以下行~/.bash_aliases

alias mf=<the correct format of the directory>
Run Code Online (Sandbox Code Playgroud)

定义后mf,我想使用以下命令切换到该目录:

~$ cd mf
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个问题吗?

1)如何写<the correct format of the directory>

2)我还需要做什么才能使用

~$ cd mf
Run Code Online (Sandbox Code Playgroud)

bash ubuntu alias windows-subsystem-for-linux

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

std::contiguous_iterator 有什么用?

我可以将它用于什么目的?为什么它比 random_access_iterator 好?如果我使用它有什么好处吗?

c++ iterator c++17

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

使用性能记录对多线程进行基于频率的采样

从这里的一个很好的答案来看,我的理解是perf每次事件计数器超过阈值时都会进行采样。当要求以特定频率采样时,它会尝试通过调整每次事件速率的估计来设置事件计数器阈值,以便在指定间隔发生溢出。

\n

我问自己这如何与多个线程一起工作,例如使用默认的“cycles”事件。

\n
    \n
  • 是否有一个全局“周期”计数器可以对溢出发生时正在运行的任何线程进行采样?或者每个 CPU 是否都有自己的“周期”计数器,用于对当前正在运行的线程进行采样,如果是,“每个 CPU”是指逻辑核心还是物理核心?或者它是每个线程的计数器?
  • \n
  • 是否只计算运行程序所花费的周期?
  • \n
\n

我希望能够解释像这些 \xe2\x80\x93 这样的模式,显然事件的发生率正在重新校准,但我不清楚为什么:

\n
tid  timestamp        event counter\n5881 187296.210979:   15736902 cycles:\n5881 187296.215945:   15664720 cycles:\n5881 187296.221356:   15586918 cycles:\n5881 187296.227022:          1 cycles:\n5881 187296.227032:          1 cycles:\n5881 187296.227037:         62 cycles:\n5881 187296.227043:       6902 cycles:\n5881 187296.227048:     822728 cycles:\n5881 187296.231842:   90947120 cycles:\n
Run Code Online (Sandbox Code Playgroud)\n

我希望它计算每个样本的下一个计数器阈值,因此在 处的样本之后187296.215945,它会将下一个样本设置为在15586918循环后发生,对吗?187296.221356但当200Hz的目标频率之前已经稳定时,将阈值设置为1个周期之后是没有意义的。这是来自另一个线程的干扰吗?

\n

multithreading profiling perf

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

是什么导致无法在 DWARF perf 调用堆栈中展开?

在由 生成perf record --call-graph dwarf和打印的回溯中perf script,我一直得到可能有 5% 的调用堆栈的错误地址,即展开失败。一个例子是

my_bin 770395 705462.825887:    3560360 cycles: 
        7f0398b9b7e2 __vsnprintf_internal+0x12 (/usr/lib/x86_64-linux-gnu/libc-2.32.so)
        7ffcdb6fbfdf [unknown] ([stack])

my_bin 770395 705462.827040:    3447195 cycles: 
        7f0398ba1624 __GI__IO_default_xsputn+0x104 (inlined)
        7ffcdb6fb7af [unknown] ([stack])
Run Code Online (Sandbox Code Playgroud)

它是从此代码生成的(使用 编译g++ -O3 -g -fno-omit-frame-pointer my_bin.cpp -o my_bin):

#include <cstdio>
#include <iostream>

int __attribute__ ((noinline)) libc_string(int x) {
    char buf[64] = {0};
    // Some nonsense workload using libc
    int res = 0;
    for (int i = 0; i < x; ++i) {
        res += …
Run Code Online (Sandbox Code Playgroud)

c++ callstack backtrace dwarf perf

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

导入matplotlib.pyplot时出现随机的nan错误

我正在实现一个卡尔曼过滤器numpy.它工作正常,除了我导入matplotlib.pyplot以显示结果时:

import numpy as np 
import matplotlib.pyplot as plt # adding this line breaks things
import sys
Run Code Online (Sandbox Code Playgroud)

完整的代码在这里.让我强调一下,在我导入之前它似乎正常工作; 它打印出100 x 2数组,这些数字似乎是合理的.添加导入后,即使不使用pyplot中的任何内容,特定行之后的所有行也是如此nan.不nan符合以前的数字.

我的第一个想法是它可能是名称冲突,但事实并非如此.您可以很容易地看到代码没有任何名为"plt"的内容,此外,它与下面描述的行为不一致.

nan当我从Sublime Text而不是从命令行执行文件或在import matplotlib as mplpyplot导入之前添加文件时,行数不同.同样,非nan数字与正确运行的版本相同.

试图调试只会让我更加困惑.我在主循环的有问题的迭代中添加了print语句,它首先只给出了nan矩阵.print yt然而,当我再添加一个语句时,打印出nan突然没有nan值的矩阵.此外,import sysimport numpy as np更改nan行数之前移动语句.在沿着这些线的实验中,我观察到当多次执行相同的文件时,发生了变化(很多,例如从77到3.32686992e + 297),并且在进一步重复执行时回到原始值,在这些值之间随机振荡两个输出.没有保存状态,文件操作只包含一次调用np.loadtxt.

可能有用的更多信息:我有Python 2.7.6和Ubuntu 14.04,虽然在其他人的计算机上使用Python 2.7.8和spyder,行为类似.

这种行为可能有什么来源?现在,我正在考虑在我们的计算机上使用巫术,巧合的神秘硬件故障,或者是一种旨在挫败Python程序员的邪恶病毒.

python numpy matplotlib python-2.7

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