当前位置: 首页 > news >正文

西宁公安网站建设四川成都最新消息

西宁公安网站建设,四川成都最新消息,安全员考试报名入口官网,广东华业建设有限公司网站程序跑的很慢,使用bottleneck一分析发现问题出在deepcopy上。 因为程序是需要对列表进行操作,而我的程序逻辑是要求必须对列表进行深拷贝,于是没有办法绕过。 只能想办法加速这个深层拷贝。 我想到四种方法 第一种:deepcopy&#…

程序跑的很慢,使用bottleneck一分析发现问题出在deepcopy上。
因为程序是需要对列表进行操作,而我的程序逻辑是要求必须对列表进行深拷贝,于是没有办法绕过。
只能想办法加速这个深层拷贝。
我想到四种方法
第一种:deepcopy,这没得啥说的。是baseline.

##直接deepcopy
def method1(origin_list, step):for each in range(step):l = copy.deepcopy(origin_list)return l

第二种:使用numpy,先转为numpy对象,然后再tolist

##转换为numpy, 然后再tolist()
def method2(origin_list, step):for each in range(step):l = np.array(origin_list).tolist()assert type(l) == type(origin_list)return l

第三种:使用pickle,先pickle.dump,再pickle.load

##使用pickle
def method3(origin_list, step):for each in range(step):l = pickle.loads(pickle.dumps(origin_list))assert type(l)== type(origin_list)return l

第四种,使用ujson,也是先usjon.dump,在ujson.load。

##使用ujson
def method4(origin_list, step):for each in range(step):l = ujson.loads(ujson.dumps(origin_list))assert type(l)== type(origin_list)return l

分别拷贝10000次,测试如下:

__author__ = 'dk'
import numpy as np
import copy
import time
import pickle
import ujson##直接deepcopy
def method1(origin_list, step):for each in range(step):l = copy.deepcopy(origin_list)return l##转换为numpy, 然后再tolist()
def method2(origin_list, step):for each in range(step):l = np.array(origin_list).tolist()assert type(l) == type(origin_list)return l##使用pickle
def method3(origin_list, step):for each in range(step):l = pickle.loads(pickle.dumps(origin_list))assert type(l)== type(origin_list)return l##使用ujson
def method4(origin_list, step):for each in range(step):l = ujson.loads(ujson.dumps(origin_list))assert type(l)== type(origin_list)return l
if __name__ == '__main__':origin_list = [[i for  i in range(30)] for i in range(30)]step = 10000t = time.time()method1(origin_list,step)e = time.time()print(e-t)t = time.time()method2(origin_list,step)e = time.time()print(e-t)t = time.time()method3(origin_list,step)e = time.time()print(e-t)t = time.time()method4(origin_list,step)e = time.time()print(e-t)

输出结果:

方法耗时
deepcopy6.8964385986328125
numpy1.1347527503967285
pickle0.5621602535247803
ujson0.7545688152313232

所以,如果list深层次拷贝绕不过去,就用pickle吧!
哎~·

http://www.lbrq.cn/news/2416843.html

相关文章:

  • 建站的注意事项官网站内推广内容
  • 万网网站备案流程十大计算机培训学校
  • 自己做链接的网站吗提高工作效率的措施
  • 宁波做网站的网页seo搜索引擎优化
  • 网站如何做等保备案临沂今日头条新闻最新
  • wordpress b站插件市场调研方案范文
  • 广州网站seo上海关键词优化的技巧
  • 个人网站建设分几个步走百度站长平台官网登录入口
  • 大埔建设工程交易中心网站湖南长沙最新情况
  • mediwiki 做网站东莞网站建设做网站
  • 五台网站建设攀枝花网站seo
  • 小程序解析wordpressseo电商运营是什么意思
  • 现在企业做网站用什么软件培训心得体会2000字
  • 邢台做网站的价格免费建网站平台
  • 商城网站模块北京seo百度推广
  • 动态网站设计用什么软件杭州seo整站优化
  • 源码上传网站魔贝课凡seo课程好吗
  • 网站如何做留言板南宁seo收费
  • 怎么做网站推广的论文离我最近的电脑培训中心
  • 建设银行网站是什么应用商店app下载
  • 安徽省建设厅执业资格注册中心网站百度浏览器网址
  • 商城小程序多少钱seo关键词优化推广报价表
  • 孝感网站建设公司推广平台网站有哪些
  • 校友网站 建设做网络推广有前途吗
  • 做分类信息网站模板能搜任何网站的浏览器
  • 茂易网站建设seo专员是指什么意思
  • 网站的做网站的公司台州网站优化公司
  • 品牌网站建设报价青岛网络工程优化
  • 做文章网站外贸网站建站
  • 网站品牌建设建议软件推广平台有哪些
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页布局实现
  • QT无边框窗口
  • Android无需授权直接访问Android/data目录漏洞
  • 打造高效订单处理!ZKmall开源商城的统一履约中心架构解析
  • 《Web安全之深度学习实战》读书笔记总结
  • Linux操作系统之线程:分页式存储管理