我有一个相当大的程序,通常运行奇妙,但使用疯狂的内存来运行.这是一种收集大量数据的机器学习方法,因此通常没问题,但即使收集了所有数据,内存也会快速增长和增长,因此我使用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) 我使用S3.Client.upload_fileobj()了BytesIO流作为输入从流文件上传到S3。我的函数在上传完成之前不应该返回,所以我需要一种等待它的方法。
从文档中没有明显的方法来等待传输完成,但有一些提示可以工作:
S3.Waiter对象,如果检查对象存在。但它是通过每 5 秒轮询一次来实现的,而且似乎非常无效。另外我不确定它是否会等到对象完成。S3.MultipartUpload带有.complete()方法的类,但我怀疑它是否能满足我的要求。我一直在谷歌搜索,但似乎没有人问同样的问题。此外,大多数讨论相关问题的结果都使用了不同的 API(我认为这upload_fileobj()是相当新的)。
编辑
如果发现S3.Client.put_object它也接受类似文件的对象并阻止直到服务器响应。但这会与流结合使用吗?我不确定 Python 多线程在这里是如何工作的。该流最初来自 a S3.Client.download_fileobj(),通过 a 进行管道传输subprocess.Popen(),然后应该上传回 S3。据我所知,下载和子进程都在并行线程/进程中运行。
尝试使用whitenoise和django-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) 好的,我正在设计一个带有多个元素的Bootstrap手风琴标题面板:
从理论上讲,它的工作非常好,至少如果标题对于容器来说不是太长.如果它开始溢出到第二或第三行,整个概念就会崩溃.见我的小提琴这里.
我想要的是所有元素总是1.彼此相邻,2.垂直居中.
所以让我试着用更大的标题来描绘它应该如何看待:
-----------------------------------------------------
| |
| ------- Text that spillls over ---------- |
| | BTN | into the next line and | | | | |
| ------- beyond! ---------- |
| |
-----------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
所以基本上,三个元素中的每一个都有明确定义的空间,并且在其内部垂直居中.
我该如何实现这一目标?