博客
关于我
python小例子(三)
阅读量:467 次
发布时间:2019-03-06

本文共 1006 字,大约阅读时间需要 3 分钟。

提高Python运行速度的方法

使用生成器可以显著节省内存资源,减少垃圾收集带来的开销。对于循环代码,可以优化重复代码部分,避免不必要的性能损耗。对于核心模块,可以尝试使用Cython或PyPy等优化工具。多进程、多线程或协程等技术也能帮助提高执行效率。同时,在编写多条件判断时,建议优先处理可能性更高的逻辑。

MySQL和Redis的区别

MySQL是关系型数据库,数据存储在硬盘中,查询时会涉及I/O操作,速度相对较慢。Redis是内存型数据库,数据存储在内存中,操作更快,适合高频率的读写场景。

常见MySQL数据存储引擎

  • InnoDB:支持事务处理和外键约束,适合对数据完整性要求高的场景(如金融行业),支持并发控制和崩溃修复能力。
  • MyISAM:插入和查询速度较快,适合只读或插入高频率的数据。
  • MEMORY:所有数据存储在内存中,速度快,但安全性较低,适合小型数据表。

Cookie和Session的区别

  • Session在服务器端管理,依赖Session ID存储,Session ID存储在Cookie中。如果浏览器禁用Cookie,Session也会失效。
  • Cookie存储在客户端(浏览器),依赖于客户端的支持,安全性较低。
  • Cookie的数据编码方式为Base64,存储时间由开发人员设置。

线程和进程

  • 进程:资源分配和调度的基本单位,多个进程相互独立运行,不会互相影响。资源消耗较大,进程数量有限。

  • 线程:在进程内运行的轻量级任务,共享进程资源。线程间存在GIL(全局解释器锁),单线程崩溃会导致进程崩溃。

  • 应用场景

    • IO密集型:多线程优化性能。
    • CPU密集型:多进程利用多核优势。

魔术方法

  • __init__:对象初始化方法。
  • __new__:对象创建前的工厂方法,常用于单列模式。
  • __str__:定义对象的字符串表示,用于print输出。
  • __del__:对象删除前执行的清理方法。

Lambda函数排序

foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4]
# 正数从小到大排序,负数从大到小排序
sorted_foo = sorted(foo, key=lambda x: (x>0, -x) if x>0 else (-x, 0))
print(sorted_foo)

输出结果:[0, 2, 4, 8, 8, 9, -2, -4, -4, -5, -20]

转载地址:http://wqibz.baihongyu.com/

你可能感兴趣的文章
NVelocity标签使用详解
查看>>
NVelocity标签设置缓存的解决方案
查看>>
Nvidia Cudatoolkit 与 Conda Cudatoolkit
查看>>
NVIDIA GPU 的状态信息输出,由 `nvidia-smi` 命令生成
查看>>
NVIDIA-cuda-cudnn下载地址
查看>>
nvidia-htop 使用教程
查看>>
nvidia-smi 参数详解
查看>>
Nvidia驱动失效,采用官方的方法重装更快
查看>>
nvmw安装node-v4.0.0之后版本的临时解决办法
查看>>
nvm切换node版本
查看>>
nvm安装以后,node -v npm 等命令提示不是内部或外部命令 node多版本控制管理 node多版本随意切换
查看>>
ny540 奇怪的排序 简单题
查看>>
NYOJ 1066 CO-PRIME(数论)
查看>>
NYOJ 737:石子合并(一)(区间dp)
查看>>
nyoj------203三国志
查看>>
nyoj58 最少步数
查看>>
OAuth 及 移动端鉴权调研
查看>>
OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
查看>>
OAuth2 Provider 项目常见问题解决方案
查看>>
OAuth2 vs JWT,到底怎么选?
查看>>