小编twe*_*ksp的帖子

烧瓶析构

我正在使用Flask构建一个Web应用程序.我已经对Flask对象进行了细分,这样我就可以在应用程序退出之前执行一大块代码(Flask对象被摧毁).当我在我的终端上运行这个并点击^ C时,我没有看到"你能听见我吗?" 消息,所以我假设__del__()没有被调用.

from flask import Flask

class MyFlask (Flask):

  def __init__(self, import_name, static_path=None, static_url_path=None,
                     static_folder='static', template_folder='templates',
                     instance_path=None, instance_relative_config=False):

    Flask.__init__(self, import_name, static_path, static_url_path,
                         static_folder, template_folder,
                         instance_path, instance_relative_config)

    # Do some stuff ... 

  def __del__(self):
    # Do some stuff ... 
    print 'Can you hear me?'

app = MyFlask(__name__)

@app.route("/")
def hello():
 return "Hello World!"

if __name__ == "__main__":
  app.run()
Run Code Online (Sandbox Code Playgroud)

我希望这个代码在析构函数中执行,这样无论应用程序如何加载它都会运行.即,app.run()在测试中,gunicorn hello.py在生产中.谢谢!

python flask

4
推荐指数
1
解决办法
1799
查看次数

RDSEED和RDRAND之间的性能差异可以忽略不计

最近的英特尔芯片(Ivy Bridge及其上)具有生成(伪)随机位的指令.RDSEED输出从芯片上的传感器收集的熵产生的"真实"随机位.RDRAND输出由真随机数发生器播种的伪随机数发生器产生的比特.根据英特尔的文档,RDSEED速度较慢,因为收集熵是昂贵的.因此,RDRAND作为更便宜的替代方案提供,并且其输出对于大多数加密应用来说足够安全.(这类似于Unix系统上的/dev/random对比/dev/urandom.)

我很好奇两个指令之间的性能差异,所以我写了一些代码来比较它们.令我惊讶的是,我发现性能几乎没有差异.任何人都可以提供解释吗?代码和系统详细信息如下.

基准

/* Compare the performance of RDSEED and RDRAND.
 *
 * Compute the CPU time used to fill a buffer with (pseudo) random bits 
 * using each instruction.
 *
 * Compile with: gcc -mdrnd -mdseed
 */
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <x86intrin.h>

#define BUFSIZE (1<<24)

int main() {

  unsigned int ok, i;
  unsigned long long *rand = …
Run Code Online (Sandbox Code Playgroud)

random gcc cryptography x86-64

4
推荐指数
1
解决办法
372
查看次数

标签 统计

cryptography ×1

flask ×1

gcc ×1

python ×1

random ×1

x86-64 ×1