使用numba的姿势不正确反而导致性能下降

栏目: Python · 发布时间: 7年前

内容简介:numba能够极大的提高python在计算方面的性能。是不是所有的python代码上,都可以加上numba.jit装饰器?答案是否定的。很常见的例子,从数据库从查询一千条数据,再进行简单的格式转换。对比结果,发现如果是非计算问题,引入即时编译,返回导致性能下降。实际python在非计算问题上性能很好。

numba能够极大的提高 python 在计算方面的性能。是不是所有的python代码上,都可以加上numba.jit装饰器?答案是否定的。

示例

环境

python3.6
fedora
pymysql

示例

很常见的例子,从数据库从查询一千条数据,再进行简单的格式转换。

#coding=utf-8
import time
from numba import jit

import pymysql
conn = pymysql.connect("192.168.10.125", "username", "password", "db_name")

#@jit   #位置1
def test_for():
    c =conn.cursor()
    c.execute("select * from user limit 1000")

    start = time.time()
    for a in c.fetchall():
        to_dict(a, c.description)
    end = time.time()
    print("cost_seconds:", end-start)

#@jit   #位置2
def to_dict(row, description):
    """
    记录转为字典
    """
    item = dict()
    for i, field in enumerate(description):
        field_name = field[0]
        item[field_name] = row[i]
    return item

test_for()

结果

python3           0.0033788681030273438
python3 +位置1jit 0.08921098709106445
python3 + 位置1jit+位置2jit  3.846426010131836
pypy              0.0065860748291015625

对比结果,发现如果是非计算问题,引入即时编译,返回导致性能下降。实际python在非计算问题上性能很好。

来源

使用numba的姿势不正确反而导致性能下降

此生必看的科学实验-水知道答案

《了凡四训》详解之改过之法

印光大师十念法(胡小林主讲第1集)

精神病为什么治不好

百病之源


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Node.js开发实战

Node.js开发实战

[美] Jim R. Wilson / 梅晴光、杜万智、陈琳、纪清华、段鹏飞 / 华中科技大学出版社 / 2018-11-10 / 99.90元

2018年美国亚马逊书店排名第一的Node.js开发教程。 . Node.js是基于Chrome V8引擎的JavaScript运行环境,它采用事件驱动、非阻塞式I/O模型,具有轻量、高效的特点。Node.j s 工作在前端代码与 数据存储层之间,能够提高web应用的工作效率和 响应速度。本书以最新版Node.js 8为基础,从实际案例出发 讲解Node.js的核心工作原理和实用开发技......一起来看看 《Node.js开发实战》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具