小编Chu*_*Men的帖子

如何将C++写入速度提升到CrystalDiskMark测试的速度?

现在我在内存中每秒获得大约3.6GB的数据,我需要不断地在我的SSD上写它们.我使用CrystalDiskMark来测试我的SSD的写入速度,它几乎是每秒6GB,所以我认为这项工作不应该那么难.

![我的SSD测试结果] [1]:

[1] https://plus.google.com/u/0/photos/photo/106876803948041178149/6649598887699308850?authkey=CNbb5KjF8-jxJQ "测试结果":

我的电脑是Windows 10,使用Visual Studio 2017社区.

我找到了这个问题,并尝试了最高的投票答案.不幸的是,他的option_2的写入速度仅为1s/GB,远远低于CrystalDiskMark所测试的速度.然后我尝试了内存映射,这次写入变得更快,大约630ms/GB,但仍然慢得多.然后我尝试了多线程内存映射,似乎当线程数为4时,速度约为350ms/GB,当我添加线程数时,写入速度不再上升.

内存映射代码:

#include <fstream>
#include <chrono>
#include <vector>
#include <cstdint>
#include <numeric>
#include <random>
#include <algorithm>
#include <iostream>
#include <cassert>
#include <thread>
#include <windows.h>
#include <sstream>


// Generate random data
std::vector<int> GenerateData(std::size_t bytes) {
    assert(bytes % sizeof(int) == 0);
    std::vector<int> data(bytes / sizeof(int));
    std::iota(data.begin(), data.end(), 0);
    std::shuffle(data.begin(), data.end(), std::mt19937{ std::random_device{}() });
    return data;
}

// Memory mapping
int map_write(int* data, int size, int id){
    char* name = (char*)malloc(100); …
Run Code Online (Sandbox Code Playgroud)

c++ file-writing

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

如果一个刻度标签太长,如何限制长度并使其多行显示?

我想用 matplotlib 做一些绘图,但存在一个问题,我的一些刻度标签太长。我想知道是否可以使长刻度标签以多行显示。

这是一些代码:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.random(4)
idx = np.arange(4)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_ylim(-0.5, 4-0.5)
ax.set_yticks(b)
ax.tick_params(length=0)
ax.barh(idx, data, zorder=2, 
        tick_label=["qwertyuioplkjhgfdsa+1s",
        "abc","asd","qwerty"])
ax.grid(axis='x')

plt.show()
Run Code Online (Sandbox Code Playgroud)

这是我得到的情节。 结果
正如你所看到的,底部的 ytick 标签太长,我想设置每行最多 10 个字母,所以我希望刻度标签可以显示在

qwertyuiop
lkjhgfdsa+
1s
Run Code Online (Sandbox Code Playgroud)

或者在一行中不太长。

任何帮助,将不胜感激!

python matplotlib

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

ubuntu18.04上的pyside2安装问题,anaconda上的python 3.8.3

安装完anaconda3后,开始安装pyside2。

我直接输入pip install pyside2,成功安装了pyside2 5.15。但是当我运行玩具示例时,发生了错误:

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    from PySide2.QtWidgets import QApplication, QLabel
ImportError: /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2: symbol krb5_ser_context_init version krb5_3_MIT not defined in file libkrb5.so.3 with link time reference
Run Code Online (Sandbox Code Playgroud)

我什么时候/usr/lib/x86_64-linux-gnu发现了libgssapi_krb5.so.2libkrb5.so.3,而且我不知道如何修复这个错误。有谁能够帮助我?

我的环境:

蟒蛇:3.8.3

操作系统:ubuntu 18.04

CPU:AMD锐龙3600

python pyside2

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

标签 统计

python ×2

c++ ×1

file-writing ×1

matplotlib ×1

pyside2 ×1