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

网站开发用什么字体找人建设一个网站多少钱

网站开发用什么字体,找人建设一个网站多少钱,新乡建站,做网站跟客人怎么沟通Requests 可是说是 Python 中最常用的库了。用法也非常简单#xff0c;但是想真正的用的好并不容易。 下面介绍一个提升性能小技巧#xff1a;使用 session 会话功能。 以下是 Requests 官网的介绍#xff1a; 会话对象让你能够跨请求保持某些参数。它也会在同一个 Sessio…Requests 可是说是 Python 中最常用的库了。用法也非常简单但是想真正的用的好并不容易。 下面介绍一个提升性能小技巧使用 session 会话功能。 以下是 Requests 官网的介绍 会话对象让你能够跨请求保持某些参数。它也会在同一个 Session 实例发出的所有请求之间保持 cookie 期间使用 urllib3 的 connection pooling 功能。所以如果你向同一主机发送多个请求底层的 TCP 连接将会被重用从而带来显著的性能提升。 目录 0. 优化效果1. 优化过程1.1. 优化前1.2. 优化后 2. 网络连接数对比2.1. 优化前2.2. 优化后 3. session 进阶设置参考 以下示例脚本采用的是在之前的章节[量化投资-学习笔记013]PythonTDengine从零开始搭建量化分析平台-策略回测进阶中的回测脚本。 程序会查询 9037 张股票的近10个月的交易数据使用交易策略进行回测并将回测结构写入数据库。 涉及数据量 查询 9037 张表共 1779929 条数据写入 9037 张表每个表 1 条数据。 0. 优化效果 优化前后对比程序执行耗时优化前1m44.5s优化后30.57s 1. 优化过程 当时为提示写入效率采用多进程/线程的方式将回测数据写入数据库。 1.1. 优化前 线程数1 # time python3 macd_all_code.py real 1m44.506s user 0m10.732s sys 0m1.620s线程数2 # time python3 macd_all_code.py real 2m45.544s user 0m20.274s sys 0m2.338s时间反而增加了1倍完全不符合设计逻辑。。 因为数据库部署在本地磁盘为SSDCPU负载也不高因此初步判断问题出在程序内部。 首先排查的就是网络连接部分因为要查询 9037 张表每个表发起一次连接TCP三次握手四次挥手这部分确实会耗时较高。 修改代码使用 session保证每个线程只建立一次连接。 修改前代码 def get_request(sql):sql sql.encode(utf-8)headers {Connection: keep-alive,Accept-Encoding: gzip, deflate, br}response requests.post(url, datasql, auth(username, password), headersheaders)data json.loads(response.content.decode())result data.get(data)return resultdef thread_func(df_code, tnum, list_num):bi tnum*list_numei bilist_numif tnum (threadNum-1):df df_code.iloc[bi:ei, :]else:df df_code.iloc[bi:len(df_code), :]df_profit loop_bt(df)write_td(df_profit)rss.close()修改后代码 def get_request(sql, rss):sql sql.encode(utf-8)headers {Connection: keep-alive,Accept-Encoding: gzip, deflate, br}response rss.post(url, datasql, auth(username, password), headersheaders)data json.loads(response.content.decode())result data.get(data)return resultdef thread_func(df_code, tnum, list_num):rss requests.session()bi tnum*list_numei bilist_numif tnum (threadNum-1):df df_code.iloc[bi:ei, :]else:df df_code.iloc[bi:len(df_code), :]df_profit loop_bt(df, rss)write_td(df_profit, rss)rss.close()以上只贴了关键两部分代码其他代码请参考《[量化投资-学习笔记013]PythonTDengine从零开始搭建量化分析平台-策略回测进阶》章节。 1.2. 优化后 threadNum1 # time python3 macd_all_code_request.py real 0m30.566s user 0m8.497s sys 0m1.344sthreadNum2 # time python3 macd_all_code_request.py real 0m32.053s user 0m17.897s sys 0m1.604s虽然线程数的提示并没有提示效率但通过使用 session, 程序整体执行效率提示了 3 倍。 2. 网络连接数对比 以下是测试过程中网络连接数的变化 2.1. 优化前 未使用session线程数1 # ss -s Total: 181 TCP: 4254 (estab 1, closed 4252, orphaned 0, timewait 4252)Transport Total IP IPv6 RAW 0 0 0 UDP 9 5 4 TCP 2 2 0 INET 11 7 4 FRAG 0 0 0未使用session线程数2 # ss -s Total: 182 TCP: 4203 (estab 0, closed 4200, orphaned 0, timewait 4200)Transport Total IP IPv6 RAW 0 0 0 UDP 9 5 4 TCP 3 3 0 INET 12 8 4 FRAG 0 0 02.2. 优化后 使用session线程数1 # ss -s Total: 183 TCP: 3 (estab 1, closed 1, orphaned 0, timewait 1)Transport Total IP IPv6 RAW 0 0 0 UDP 10 6 4 TCP 2 2 0 INET 12 8 4 FRAG 0 0 0使用session线程数2 # ss -s Total: 182 TCP: 4 (estab 2, closed 1, orphaned 0, timewait 1)Transport Total IP IPv6 RAW 0 0 0 UDP 9 5 4 TCP 3 3 0 INET 12 8 4 FRAG 0 0 0通过以上对比发现网络连接数大幅下降从优化前的 4000 多个 下降到 2-4 个。 3. session 进阶设置 class requests.adapters.HTTPAdapter(pool_connections10, pool_maxsize10, max_retries0, pool_blockFalse)[source] The built-in HTTP Adapter for urllib3.Provides a general-case interface for Requests sessions to contact HTTP and HTTPS urls by implementing the Transport Adapter interface. This class will usually be created by the Session class under the covers.Parameters - pool_connections – The number of urllib3 connection pools to cache. - pool_maxsize – The maximum number of connections to save in the pool. - max_retries – The maximum number of retries each connection should attempt. Note, this applies only to failed DNS lookups, socket connections and connection timeouts, never to requests where data has made it to the server. By default, Requests does not retry failed connections. If you need granular control over the conditions under which we retry a request, import urllib3’s Retry class and pass that instead. - pool_block – Whether the connection pool should block for connections.我在代码中添加了相关设置 rss.mount(http://, requests.adapters.HTTPAdapter(pool_connections20, pool_maxsize20, max_retries3))但是执行速度并没有提升看来瓶颈已经不在网络连接方面了。 后面持续进行优化吧。 参考 官方文档-高级用法-会话对象 python3 requests使用连接池 [Python] 用Session()优化requests的性能
http://www.zqtcl.cn/news/338064/

相关文章:

  • 烟台建设集团招聘信息网站青岛百度公司总部
  • php网站模板怎么用怎么做链接网站
  • 完整网站开发视频教程安丘营销型网站建设
  • 女与男爱做电影网站免费网站外包公司
  • 传统文化传播公司网站建设wordpress 插件开启
  • 哪些网站是做外贸生意的网站建设所需美工
  • 网站建设哪个公司比较好惠州网络问政平台
  • 河南网站备案系统短信广州注册公司程序
  • 苏晋建设集团网站跨专业的简历怎么制作
  • 交互网站怎么做设计师作品网站
  • 国外网站的分析工具有哪些办公室装修计入什么会计科目
  • 手机网站 需求模板3000元建设个人网站
  • 请人做网站域名和主机thinkphp网站开发实战教程
  • 做地产网站哪家好饮料网站建设价格
  • 外管局网站 报告怎么做wordpress 阿里
  • 湘潭做网站 去磐石网络山西自助建站费用低
  • 温州哪里做网站比较好昆明网页制作开发
  • 网站建设淘宝客网站建设与网页设计入门
  • 网站推广营销联系方式俄语免费网站制作
  • 广东企业网站seo点击软件搭建本地网站
  • 商丘做网站的价格专业网站制作哪家强
  • 瑞安微信网站软件公司网站设计与制作
  • 片头网站网站建设服装在线商城实训报告
  • wordpress做企业网站怎样做网页推广
  • 网站建设售后服务安全维护企业网站开发 外文文献
  • 网站设计英文翻译系统开发的五个阶段
  • 成华区门户网站拍卖网站开发多少钱
  • html设计网站wordpress 评论增加字段
  • 搭建正规网站小程序开发难不难
  • 做静态网站用什么软件自己编写代码建设微网站