小编cpu*_*ury的帖子

我的记忆不是免费的

我有一个相当大的程序,通常运行奇妙,但使用疯狂的内存来运行.这是一种收集大量数据的机器学习方法,因此通常没问题,但即使收集了所有数据,内存也会快速增长和增长,因此我使用valgrind massif来找出问题所在.地块顶部的堆树看起来像这样:

99.52% (60,066,179B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
->43.50% (26,256,000B) 0x439785: Image::Image(SDL_Surface*) (Image.cpp:95)
| ->43.50% (26,256,000B) 0x437277: EncodedFeature::forwardPass() (EncodedFeature.cpp:65)
....
Run Code Online (Sandbox Code Playgroud)

所以我想,嗯,也许构建的图像不是免费的,但没有:

void EncodedFeature::forwardPass()
{
    // Get image:
    Image* img = new Image(screen);

    // Preprocess:
    if(preprocessor)
        preprocessor->process(img);

    // Do forward pass:
    encoder->encode(img, features);

    delete img;
}
Run Code Online (Sandbox Code Playgroud)

所以对于Image构造函数:

Image::Image(SDL_Surface* surface)
{
    this->width = surface->w;
    this->height = surface->h;
    pixels = new int*[width];
    for(int i = 0; i < width; i++)
        pixels[i] = new int[height];

    for(int x = 0; x < surface->w; …
Run Code Online (Sandbox Code Playgroud)

c++ memory-leaks

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

Boto3:等待 S3 流上传完成

我使用S3.Client.upload_fileobj()BytesIO流作为输入从流文件上传到S3。我的函数在上传完成之前不应该返回,所以我需要一种等待它的方法。

从文档中没有明显的方法来等待传输完成,但有一些提示可以工作:

  1. 使用回调 arg等待进度达到 100%。在 Javascript 中,使用回调或承诺这将是微不足道的,但在 Python 中我不太确定。
  2. 使用一个S3.Waiter对象,如果检查对象存在。但它是通过每 5 秒轮询一次来实现的,而且似乎非常无效。另外我不确定它是否会等到对象完成。
  3. 有一个S3.MultipartUpload带有.complete()方法的类,但我怀疑它是否能满足我的要求。
  4. 执行一个循环,检查对象是否已完全上传,如果没有,则休眠一段时间。但是如何检查对象是否完整?

我一直在谷歌搜索,但似乎没有人问同样的问题。此外,大多数讨论相关问题的结果都使用了不同的 API(我认为这upload_fileobj()是相当新的)。

编辑 如果发现S3.Client.put_object它也接受类似文件的对象并阻止直到服务器响应。但这会与流结合使用吗?我不确定 Python 多线程在这里是如何工作的。该流最初来自 a S3.Client.download_fileobj(),通过 a 进行管道传输subprocess.Popen(),然后应该上传回 S3。据我所知,下载和子进程都在并行线程/进程中运行。

python amazon-s3 boto amazon-web-services boto3

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

Whitenoise和django压缩器导致404压缩文件

尝试使用whitenoisedjango-compressor将Django应用程序部署到Heroku .

使用DEBUG = False和将其部署到生产中,COMPRESS_ENABLED = True可以毫无问题地访问我的所有静态资产.但是,所有压缩文件都返回404,例如:

http://*.herokuapp.com/static/CACHE/css/fbfaa35dc638.css无法加载资源:服务器响应状态为404(未找到)

启用DEBUG或禁用COMPRESS_ENABLED修复问题,但当然不是我想要的.

我也在设置STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage',但改变这一点并没有帮助.

某些设置(注意我有例如设置目录base.py,local.py等等.这就是为什么我需要一个额外../的路径):

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, '../staticfiles')

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, '../static'),
)

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
)
Run Code Online (Sandbox Code Playgroud)

在我的基本模板中:

{% compress css %}
<link rel="stylesheet" href="{% static 'css/app.css' %}">
{% block css %}{% endblock %}
{% endcompress %}

[...]

{% compress js %}
<script src="{% …
Run Code Online (Sandbox Code Playgroud)

python django heroku django-compressor

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

将元素放在一行并保持垂直居中,无论大小

好的,我正在设计一个带有多个元素的Bootstrap手风琴标题面板:

  1. 一个大按钮
  2. 一些(短)文本/标题,可以是多行长
  3. 左侧的一个小按钮组

从理论上讲,它的工作非常好,至少如果标题对于容器来说不是太长.如果它开始溢出到第二或第三行,整个概念就会崩溃.见我的小提琴这里.

我想要的是所有元素总是1.彼此相邻,2.垂直居中.

所以让我试着用更大的标题来描绘它应该如何看待:

-----------------------------------------------------
|                                                   |
| -------    Text that spillls over    ----------   |
| | BTN |    into the next line and    |  |  |  |   |
| -------    beyond!                   ----------   |
|                                                   |
-----------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

所以基本上,三个元素中的每一个都有明确定义的空间,并且在其内部垂直居中.

我该如何实现这一目标?

html css twitter-bootstrap

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