- 博客(121)
- 资源 (5)
- 收藏
- 关注
原创 python底层设计:列表对象设计
目录1.初识PyListObject2.PyListObject对象的创建和维护2.1创建对象2.2设置元素2.3 内存分配方式2.4.常见操作原理:3.PyListObject对象缓冲池1.初识PyListObject python里的列表不是书上基于链表的列表,而是基于可变长度的数组。PyListObject对象可以有效支持元素插入添加删除等操作...
2020-01-14 11:25:13
973
1
原创 python底层设计:String对象设计
目录1.PyStringObject与PyString_Type2.PyStringObject的创建3.Intern机制4.字符缓冲池5.PyStringObject 效率问题1.PyStringObject与PyString_Type 在python中,PyStringObject是对字符串对象的实现,PyStringObject是一个拥有可变长度内存的对象...
2020-01-13 11:55:12
804
原创 python底层设计:整数对象设计
目录1.初识整数2.PyIntObject创建与维护2.1 对象的创建途径2.2小整数对象2.3大整数对象2.4 添加和删除1.初识整数 python中整数是通过PyIntObject对象实现的,它属于imutable(不可变对象),也就是说在创建一个PyIntObject对象后,就再也不能改变该对象的值了;另外这里的int并非真正的int,而是long...
2020-01-10 16:45:32
619
原创 python底层设计:对象设计思想
目录1.对象机制的基石PyObject2.可变对象类型基石:PyVarObject3.类的设计核心PyTypeObject3.1.对象的创建原理3.2 对象行为3.3 类型的类型4.对象的多态/动态语言的原理5.计数引用在python中,很多模块都是直接由c实现的,所有东西都是对象,即使是int,float等这样的基本数据类型,都是一个对象,比如>&...
2020-01-09 19:27:19
640
原创 高性能Mysql 序言3:服务器性能剖析
目录3.1通过性能剖析进行优化3.2对应用程序进行性能剖析3.3剖析服务器负载总结:3.1通过性能剖析进行优化性能剖析是测量和分析时间花费在哪里的主要方法。一般由两个步骤:测试任务所花费的时间;然后对结果进行统计和排序,将重要的任务排在前面。mysql的性能剖析能将重要的任务展示在前面,但是有时没显示出来的信息也很重要,如下所示:值得优化的查询性能剖析不会...
2019-12-03 15:45:33
226
原创 高性能Mysql 序言2:MySQL基准测试
基准测试是针对系统设计的一种压力测试,通常用于系统可靠性和性能瓶颈问题的查找,本章主要讲解基准测试的重要性,策略,方法。目录2.1为什么需要基准测试2.2基准测试的策略2.3测试指标2.4 基准测试的方法2.1为什么需要基准测试基准测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统是如何处理不同的数据。 基准测试可以完成下面的...
2019-11-30 09:05:34
292
原创 高性能Mysql 序言:MySQL架构与历史
目录1.1 MySQL逻辑架构1.1.1 连接管理与安全性1.1.2 优化和执行1.2 并发控制1.2.1 读写锁1.2.2 锁粒度1.3 事务1.3.1 隔离级别1.3.2死锁1.3.3 事务日志1.4 MySQL中的事务1.5 MySQL的存储引擎1.1 MySQL逻辑架构最上层的服务非mysql独有,大部分基于网络客户端/服...
2019-11-29 12:35:15
240
原创 Mac OSX 下QT 5.13.1解决MySQL动态链接库问题
又来一年一度的配置了-_-!!,最怕的就是配置了,这次要配置的是Qt mysql链接库,看网上教程发现大家配置的好溜,只有我一人出现各类问题!!咋们先查看下官文介绍Embedded MySQL ServerThe MySQL embedded server is a drop-in replacement for the normal client library. With t...
2019-10-20 19:59:38
1466
2
原创 mac下pycharm + python3.7 + PyQt5 + Qt5.13.1配置
因为课设需要用到python来写界面,本来想用内置的tkinter库, 不仅界面丑,而且代码很难写,支持的文档少,所以果然选择了PyQt5初始环境:mac: 10.12.6 pycharm: 2018.2 python: 3.7 pip:19.1.1 sip: 4.19.8第一步:安装PyQt5直接在preference安装第二步:安装Qt(UI控件相关,可视化操作...
2019-10-07 15:29:34
1009
原创 MySQL占用物理内存和虚拟内存过高问题处理办法
这阵子发现,mysql进程一直占用非常高的内存,单纯的启动一般都要占几百M内存,对于服务器来说是一种负担,在高并发插入的时候,服务器经常出现各种问题,内存一直飙升,查了网上很多资料,发现大家都是相互抄袭,方法千篇一律且无效。后来发现,可以关闭性能模式来降低内存占用,先看看官网对他的介绍:如果未明确设置,性能模式将在服务器启动时自动调整其几个参数的值。例如,它通过这种方式调整控制事件等待...
2019-09-28 15:54:06
1457
原创 写数据时出现2013,Lost connection to MySQL server during query错误问题解决
写了一个定时调度程序,在本地测试下没什么问题,但是部署到服务器上时不时就出现异常退出了,查看了程序运行日志,出现了以下异常[2019-09-27 22:15:18,994: WARNING/ForkPoolWorker-12] (2013, 'Lost connection to MySQL server during query')[2019-09-27 22:15:18,997: ...
2019-09-27 23:10:27
2025
1
原创 并发时redis报ConnectionError: Too many connections错误处理
这俩天再写一个redis数据完整性检查的程序,并发redis连接池的时候总是出现Too many connections,检查了配置和程序代码,没发现什么问题,下面是我写的线程池和redis连接池代码线程池:import osfrom threading import Threadfrom queue import Queueclass _Worker(object):...
2019-09-26 16:40:16
3871
1
原创 Redis主从通信失败原因总结
redis主从通信经常犯的错误有以下:1.bind地址有误,主库要么bind指定ip,要么不指定任何ip,再要么接受所有ip(0.0.0.0)2.防火墙阻塞:想要接入主库,需要开通redis端口的防火墙策略,对于阿里云来说,需要在网站上手动添加安全规则,然后重启,就可连接 了,如下...
2019-09-22 22:40:05
629
原创 关于本栏目讲解声明
之前有讲解过系统优化相关问题,其中mysql优化这一模块是难点,很多人看了我写的优化专题似懂非懂,为此我会在这阵子独立开MySQL高性能独立专题讲解,无论是新手还是老鸟,都会有收益的,目前写的mysql小专题设为私密状态,等我把十几个小专题都写好了就一次性放出来。...
2019-09-22 09:18:54
169
原创 开启多个任务线程池因内存冲突导致部分任务失败进而导致死锁的问题解决思路
线程池优势:系统启动一个新线程的成本是比较高的,因为它涉及与操作系统的交互。在这种情形下,使用线程池可以很好地提升性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更应该考虑使用线程池。线程池在系统启动时即创建大量空闲的线程,程序只要将一个函数提交给线程池,线程池就会启动一个空闲的线程来执行它。当该函数执行结束后,该线程并不会死亡,而是再次返回到线程池中变成空闲状态,等待执行下一个函数。...
2019-09-17 23:38:56
1329
原创 数据库高版本导入到低版本出现的[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci问题
使用navicate12运行sql文件出错报错:[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'报错原因:生成转储文件的数据库版本为8.0,要导入sql文件的数据库版本为5.6,因为是高版本导入到低版本,引起1273错误解决方法:打开sql文件,将文件中的所有utf8mb4_0900_ai_ci替换为utf8_genera...
2019-07-27 01:10:11
1383
原创 Django原始SQL查询需要注意的问题
Django为您提供了两种执行原始SQL查询的方法:您可以使用它Manager.raw()来执行原始查询并返回模型实例,或者您可以完全避免模型层并直接执行自定义SQL。1.执行原始查询raw()管理方法可以用来执行返回模型实例原始的SQL查询:Manager.raw(raw_query,params = None,translations = None)此方法接受原始SQL...
2019-07-23 16:50:04
316
原创 自定义小型分布式任务队列,实时采集地区人口数据
由于项目需要设计分布式架构,在这里给大家稍微介绍下分布式,并且写了一个单核分布式任务模版给大家做参考ps:由于服务器很垃圾,只有一核,所以就只写了单核模版给大家。架构图如下:ps:该图引用自互联网接下来的例子主要分为两个部分,一是实时监测是否有新数据进来,二是多任务请求数据。整个模块大概有一亿左右的任务需要处理。以下是是单核处理模型import requestsimpo...
2019-07-08 16:10:52
535
原创 Django2.1.8升级到2.2.3自定义错误界面报错handler400,handler403,handler404,handler500设置失败问题
网上错误解决方法:1.配置settings配置tamplates文件路径、关闭Debug、配置allowrd_hosts2.编写视图from django.shortcuts import renderdef page_not_found(request): return render(request, '404.html')def page_error...
2019-07-05 09:40:58
4118
原创 心得---Django官网文档多数据库应用的BUG修改
定义数据库以下是settings.py定义两个数据库的示例代码段DATABASES = { 'default': { }, 'webdata': { 'ENGINE': 'django.db.backends.mysql', "NAME": "webdata", # 数据库名 'USER': "root", ...
2019-06-17 10:41:14
225
原创 排序算法之快速排序
快速排序快速排序(Quick Sort)使用分治法策略。它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序流程:(1) 从数列中挑出一个基准值。(2) 将所有比基准值小的摆放在基准前面,所有比基...
2019-06-12 20:38:17
294
原创 排序算法之选择排序
选择排序选择排序(Selection sort)是一种简单直观的排序算法。它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 流程如图所示排序流程第1趟:i=0。找出a[1...5]中的最小值a[3]=10,然后...
2019-06-12 15:21:27
291
原创 排序算法之直接插入排序
直接插入排序直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。代码实现1.PythonARRAY = [20, 40, ...
2019-06-12 14:45:15
504
原创 排序算法之冒泡排序
从今天开始,给大家介绍各种算法,立志一天介绍一种算法,今天就先给大家介绍排序算法,采用python,C,汇编三种语言分别给大家做说明冒泡排序的定义:冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就...
2019-06-12 10:05:53
428
原创 shell运行python工程模块脚本时需要注意的问题
这两天忙于产品上线,原先在pycharm可以直接运行的工程,部署到服务器后使用shell命令启动时出现了模块加载错误问题,查阅了很多文档,在这里给大家做个总结。举例:这里我有一个工程,结构如下。main程序入口代码如下:from shellpath.pack1.model1 import Afrom shellpath.pack1.model2 import Bfrom ...
2019-06-02 20:46:35
985
原创 服务器Centos系统下部署Django应用
1.安装数据库yum install mysql-develpip install mysqlclient2.安装Django,uwsgipip install Djangopip install uwsgi3.安装virtualenv ,建议大家都安装一个virtualenv,方便不同版本项目管理。pip install virtualenv建立vir...
2019-05-06 20:55:15
334
原创 阿里云部署项目的坑!!!
问题:轻量应用服务器的管理地址打不开,ip地址无法访问。使用/usr/local/apache/bin/apachectl restart重启web服务,最后再用 netstat -lntup | grep 80 命令查看80端口是否打开。这种情况大部分是80端口未开放造成的。...
2019-05-05 22:04:28
628
原创 实现状态对象或者状态机
你想实现一个状态机或者是在不同状态下执行操作的对象,但是又不想在代码中出现太多的条件判断语句。在很多程序中,有些对象会根据状态的不同来执行不同的操作。比如考虑如下的一个连接对象:class Connection: """普通方案,好多个判断语句,效率低下~~""" def __init__(self): self.state = 'CLOSED' ...
2019-04-30 11:12:23
596
原创 类扩展功能的方法
你有很多有用的方法,想使用它们来扩展其他类的功能。但是这些类并没有任何继承的关系。 因此你不能简单的将这些方法放入一个基类,然后被其他类继承。假设你想扩展映射对象,给它们添加日志、唯一性设置、类型检查等等功能。下面是一些混入类:from collections import defaultdictclass Log: __slots__ = () def _...
2019-04-30 10:46:54
352
原创 类初始化的多种方式
1.直接__init__import timeclass Date: def __init__(self, year, month, day): self.year = year self.month = month self.day = dayDate(2019,4,30)2.使用类方法实例化class Date:...
2019-04-30 10:18:27
1044
原创 collections容器详解
collections--- 容器数据类型这个模块实现了特定目标的容器,以提供Python标准内建容器dict,list,set, 和tuple的替代选择。namedtuple() 创建命名元组子类的工厂函数 deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop) ChainMap 类似字典(dict)的容器...
2019-04-30 00:12:51
384
原创 实现数据模型的类型约束
你想定义某些在属性赋值上面有限制的数据结构。在这个问题中,你需要在对某些实例属性赋值时进行检查。 所以你要自定义属性赋值函数,这种情况下最好使用描述器。class Descriptor: def __init__(self, name=None, **opts): self.name = name for key, value in opts.it...
2019-04-28 20:10:40
546
1
原创 简化数据结构的初始化方法
你写了很多仅仅用作数据结构的类,不想写太多烦人的__init__()函数。可以在一个基类中写一个公用的__init__()函数,然后使你的类继承自这个基类。# 公共结构class Struct: _filed = [] def __init__(self, *args): if len(args) != len(self._file...
2019-04-28 19:52:15
616
原创 延迟计算
你想将一个只读属性定义成一个property,并且只在访问的时候才会计算结果。 但是一旦被访问后,你希望结果值被缓存起来,不用每次都去计算。import mathclass lazyproperty: def __init__(self, func): self.func = func def __get__(self, instance, cls):...
2019-04-28 19:33:12
912
原创 文件与IO
前面介绍过文件类的操作,今天给大家更加全面深入的介绍 文件不存在时的写入: 你想像一个文件中写入数据,但是前提必须是这个文件在文件系统上不存在。 也就是不允许覆盖已存在的文件内容。 ''' ========= =============================================================== Character Meani...
2019-04-27 16:35:21
199
原创 深入了解迭代器
实例:实现一个以深度优先方式遍历树形节点的生成器class Node: def __init__(self, value): self._value = value self._children = [] def __repr__(self): return 'Node({!r})'.format(self._value)...
2019-04-27 14:38:35
205
原创 CentOS环境下安装lxml失败解决方法
安装时出现了以下错误 copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-3.8/lxml/isoschematron/resources/xsl/iso-schematron-xslt1 cop...
2019-04-07 15:29:23
803
原创 解决CentOS下python3系列缺少SSL模块的方法
在centos7上安装python3.7,很多时候提示缺少安装_ssl模块,这导致很多依赖于ssl的模块无法正常安装,如ulib3,requests.解决方法:先安装编译器和依赖yum -y install gccyum -y install bzip2-devel sqlite-devel openssl-devel readline-devel xz-devel xz-deve...
2019-04-07 01:41:42
3547
原创 CentOS系统下配置阿里云服务器Python开发环境
1.连接服务器ssh 用户名@ip地址回车后输入yes,再输入密码,连接成功2.安装必要的软件源yum install gcc yum install zlib-devel 3.下载Pythoncd /usr/src wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz ...
2019-04-06 15:45:04
814
原创 Django开发(十)---ORM模糊查询之万能双下划线
book_list = Book.objects.filter(price__gt=50).values("name","price") print("查询价格大于50"+str(book_list)) b = Book.objects.filter(name__contains="p").values("name","price") ...
2019-03-15 11:09:58
643
1
RequestsData.xlsx
2019-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人