小编Phi*_*lip的帖子

如何使用 matplotlib 以指数方式缩放 Y 轴

我正在尝试创建一个带有指数(?)Y 轴的 matplotlib 图,就像我在下面模拟的假图一样。对于我的数据,我想在它们接近最大 Y 值时将这些值展开。当 Y 接近零时,我想压缩这些值。

所有正常的“日志”示例都做相反的事情:它们在远离零时压缩值。这当然是“日志”所做的。如何创建指数(?)缩放?

图形

python matplotlib

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

为什么std :: mutex的速度是CRITICAL_SECTION的两倍

std :: mutex是通过关键部分实现的,这就是它比OS Mutex(在Windows上)快得多的原因.但是它没有Windows CRITICAL_SECTION那么快.

计时只是一个线程中的紧密循环:

423.76ns ATL CMutex
 41.74ns std::mutex
 16.61ns win32 Critical Section
Run Code Online (Sandbox Code Playgroud)

我的问题是std :: mutex还在做什么?我查看了源代码但无法遵循它.然而,在它推迟到Crit Sec之前还有额外的步骤.我的问题是:这些额外的步骤是否有用?也就是说,有什么额外的步骤; 使用CRITICAL_SECTION我会错过什么?

如果它没有用Mutex实现,为什么他们称之为Mutex呢?

c++ winapi mutex critical-section c++11

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

如何从 Flask 中的单独模块登录

我有一个简单的 Flask 应用程序,如下所示:

from flask import Flask
import util

APP = Flask("app")
APP.debug = True

@APP.route('/', methods=['GET'])
def index():
    APP.logger.info("info message from index")
    util.test()
    return "hello world"

if __name__ == '__main__':
    APP.run()
Run Code Online (Sandbox Code Playgroud)

util 模块在哪里:

import logging

logger = logging.getLogger(__name__)

def test():
    logger.info("info message from util")
Run Code Online (Sandbox Code Playgroud)

当我运行时,控制台中只出现“来自索引的信息消息”。

将两条日志消息一起打印到控制台并同时打印到日志文件的最简单方法是什么。

我尝试了各种方法,但没有一个对我有用。特别是 util one 永远不会出现。

python logging flask

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

我怎样才能让 pytest 不捕获异常

当我在 vscode 调试器中运行 pytest 并选中“Uncaught Exceptions”并且有测试错误时,不会发生未捕获的异常,因为 pytest 捕获它们并报告结果。我怎么能告诉 pytest 只让异常发生?以便我可以在 vscode 调试器中捕获它们?

基本上我想要这样的行为,--pdb但我希望它启动 vscode 调试器而不是 pdb。这面旗帜--pdbcls听起来很有希望,但不知道该<module>:<class>送什么。

注意:通常我只会让它在引发异常时中断。但是我们的代码有大量引发但捕获的异常,所以这个选项没有用。

这是在调试 pytest 测试时引发 AssertionError 时 vscode 不会中断的视频:

在此处输入图片说明

@rioV8 下面的建议确实打破了异常,但由于某种原因,没有堆栈,这意味着您无法从那里进行调试:

在此处输入图片说明

我一定遗漏了一些东西,因为似乎没有其他人需要这种能力。但对我来说,这似乎绝对是测试框架和调试器可以做的最基本的最简单的事情:作为开发人员,我想从出现错误的地方进行调试。

人们使用带有 pytest 的调试器肯定有一些完全不同的方式,我忽略了一些明显的技术。

visual-studio-code vscode-debugger vscode-python

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

如何部分禁用C4244

在Visual C++ 2012中的代码

double d = 0.5;
float f = d;
int i = f;
Run Code Online (Sandbox Code Playgroud)

向我发出2个警告:

test.cpp(26): warning C4244: 'initializing' : conversion from 'double' to 'float', possible loss of data
test.cpp(27): warning C4244: 'initializing' : conversion from 'float' to 'int', possible loss of data
Run Code Online (Sandbox Code Playgroud)

我想压制我认为垃圾邮件的第一个警告,但保留第二个警告我认为非常有帮助.有可能压制一个并保持另一个吗?人们通常只是压制他们吗?我们有一个错误的错误,我们错误地将双重传递给浮动.但是我们的数学代码会触发double-> float警告.

c++ visual-c++ visual-studio-2012

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

ECS任务中要创建多少个线程/进程

一个c5.2xlarge实例具有8个vCPU。如果我运行os.cpu_count()(Python)或std :: thread :: hardware_concurrency()(C ++),则每个实例报告此实例为8。我认为底层硬件可能是一台更大的机器,但是它们告诉我可以使用的功能,这似乎有用且正确。

但是,如果我的ECS任务仅请求2048 CPU(2 vCPU),则在c5.2xlarge计算机上,上述查询仍将获得8。我的理解是,如果其他繁忙的任务正在运行,Docker会将我的任务限制为仅使用“价值2个vCPU”的CPU。但这让我看到了整个实例。

看来这将导致任务创建太多线程/进程。例如,如果我在c5.18xlarge实例上运行2048个CPU任务,则每个任务都将认为它具有72个可用内核。他们都会创建太多的线程/进程。它会工作,但效率低下。

最佳做法是什么?程序应该以某种方式知道其ECS任务保留吗?并据此创建线程/进程?这似乎很好,但是如果实例中没有很多忙碌的任务,您可能会使用不足。因此,我不确定那里是否是最佳选择。

我想根本的问题是Docker将限制使用的CPU总量。但是它无法调整您正在使用的线程/进程的数量。使用太多或太少的线程/进程效率低下。

请参阅ECS文档中有关cpu用法的讨论。

另请参见这篇长博客文章:https : //goldmann.pl/blog/2014/09/11/resource-management-in-docker/

amazon-ec2 amazon-web-services amazon-ecs

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

中断系统调用处理队列

我们突然开始在Queue操作上看到"Interrupted system call",如下所示:

Exception in thread Thread-2:
Traceback (most recent call last):
[ . . . ]
   result = self.pager.results.get(True, self.WAIT_SECONDS)
 File "/usr/lib/python2.5/site-packages/processing-0.52-py2.5-linux-x86_64.egg/processing/queue.py", line 128, in get
   if not self._poll(block and (deadline-time.time()) or 0.0):
IOError: [Errno 4] Interrupted system call
Run Code Online (Sandbox Code Playgroud)

这是最近有安全更新的Fedora 10/Python 2.5机器.在此之前,我们的软件运行了大约一年没有发生任何事故,现在它每天都在崩溃.

捕获此异常并重试Queue操作是否正确/必要?

我们没有设置任何信号处理程序,但这是一个Tkinter应用程序可能它设置了一些.清除SIGINT处理程序是否安全,是否可以解决问题?谢谢.

python queue multiprocessing

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

Debug版本编译比发布版本慢得多

在Visual Studio 2005下,我们有一个带有195个cpp文件的库,大约需要2分钟来构建版本,但是大约需要6分钟来构建调试.

我一直认为发布版本应该花费更长时间,因为优化.为什么调试版本需要比发布版本更长的时间?反正有没有加快我们的调试构建速度和发布速度一样快?

我们确实有相当数量的boost/stl代码.

c++ build visual-studio

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

为什么在此示例中预取加速不会更大?

在6.3.2中,这篇优秀论文 Ulrich Drepper撰写了关于软件预取的文章.他说这是"熟悉的指针追逐框架",我收集的是他之前给出的关于遍历随机指针的测试.在他的图表中,当工作集超过缓存大小时,性能会逐渐消失,因为那时我们会越来越频繁地访问主内存.

但是为什么prefetch只能帮助8%呢?如果我们告诉处理器我们想要加载什么,并且我们提前告诉它足够远(他提前160个循环),为什么缓存不满足每个访问?他没有提到他的节点大小,所以当只需要一些数据时,由于获取一个完整的行可能会有一些浪费?

预取改进图

我试图使用_mm_prefetch与树,我看到没有明显的加速.我正在做这样的事情:

_mm_prefetch((const char *)pNode->m_pLeft, _MM_HINT_T0);
// do some work
traverse(pNode->m_pLeft);
traverse(pNode->m_pRight)
Run Code Online (Sandbox Code Playgroud)

现在这应该只能帮助一方进行遍历,但我只看到性能上没有任何变化.我确实将/ arch:SSE添加到项目设置中.我正在使用带有i7 4770的Visual Studio 2012.在这个帖子中,一些人还谈到了使用预取只获得1%的加速.为什么预取不会对主内存中的数据随机访问产生影响?

sse intel visual-studio-2012

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

如何使用 vscode 在新行中插入片段?

我正在尝试为 python 制作一个 vscode 片段。假设我有这样一行代码:

my_var = call_some_function()
Run Code Online (Sandbox Code Playgroud)

我想双击 my_var 来选择它,按下一个键,它会产生以下结果:

my_var = call_some_function()
LOGGER.debug("my_var: %s", my_var)
<cursor is here>
Run Code Online (Sandbox Code Playgroud)

它也应该适用于表达式,就像我在这一行中选择“x + y + z”并按下键:

call_function(x + y + z)
Run Code Online (Sandbox Code Playgroud)

它应该产生:

call_function(x + y + z)
LOGGER.debug("x + y + z: %s", x + y + z)
<cursor is here>
Run Code Online (Sandbox Code Playgroud)

显然使用调试器更好。但有时您不能使用调试器。

code-snippets visual-studio-code

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

使用画布防止窗口滚动

我试图阻止窗口在画布上使用鼠标滚轮时滚动.我试过像这样禁用它:

document.getElementById( "canvasId" ).onmousedown = function(event){
    event.preventDefault();
};
Run Code Online (Sandbox Code Playgroud)

还有其他一些方法,但没有任何作用:

http://jsfiddle.net/MZ9Xm/1/

使浏览器窗口变小,以便有一个滚动条,然后鼠标滚轮在画布上,它将使窗口滚动.如何让画布接收轮子信息但阻止窗口滚动?

我正在使用jquery(此处未显示).

javascript jquery html5-canvas

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

将文本与图像底部对齐

从标记开始

#row { }
#label { float: left; width:100px }
#image { float: left }

<div id="row">
    <div id="label">Label Here</div>
    <div id="image"><img src="http://placekitten.com/100"></div>
    <div id="image"><img src="http://placekitten.com/100"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

如下所示:http://jsfiddle.net/Hyx5n/

我想将标签向下移动到图像的下边缘.所以它看起来像这样:

小样

我试过在容器中放置"position:relative",在标签div中放置"position absolute".但随后图像不再在同一行:http://jsfiddle.net/Hyx5n/1/

css

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