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

本文共 1003 字,大约阅读时间需要 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/

你可能感兴趣的文章
OpenCV与AI深度学习 | 基于YOLO11的车体部件检测与分割
查看>>
OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
查看>>
OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案
查看>>
OpenCV与AI深度学习 | 基于深度学习的轮胎缺陷检测系统
查看>>
OpenCV与AI深度学习 | 实战 | OpenCV传统方法实现密集圆形分割与计数(详细步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)
查看>>
OpenCV与AI深度学习 | 实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
查看>>
OpenCV与AI深度学习 | 实战 | 使用YoloV8实例分割识别猪的姿态(含数据集)
查看>>
OpenCV与AI深度学习 | 实战 | 基于YoloV5和Mask RCNN实现汽车表面划痕检测(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 干货 | 深度学习模型训练和部署的基本步骤
查看>>
OpenCV与AI深度学习 | 手把手教你用Python和OpenCV搭建一个半自动标注工具(详细步骤 + 源码)
查看>>
OpenCV与AI深度学习 | 深度学习检测小目标常用方法
查看>>
Opencv中KNN背景分割器
查看>>
OpenCV中基于已知相机方向的透视变形
查看>>
OpenCV中的监督学习
查看>>
opencv中读写视频
查看>>
opencv之cv2.findContours和drawContours(python)
查看>>
opencv之namedWindow,imshow出现两个窗口
查看>>
opencv之模糊处理
查看>>
Opencv介绍及opencv3.0在 vs2010上的配置
查看>>