技术文章

Python 垃圾回收

瘦欲@ 提交于 2021-02-18 14:22:22
Python 的内存管理是自动的。Python 使用引用计数和垃圾回收来管理内存。 引用计数:每个对象有一个引用它的对象的数目。引用计数为 0 的对象被视作垃圾。当一个引用它的对象创建时,引用计数加一,当一个引用它的对象销毁时,引用计数减一。 引用计数有一些缺点,其中一个是它不能处理循环引用。 def make_cycle(): 1 = [ ] 1.append(l) make_cycle() 因为 make_cycle() 中创建了一个循环引用对象,所以当函数返回后,它并不会被引用计数回收。 自动回收引用对象 因为循环引用需要消耗计算资源来发现,所以垃圾回收是一个预先安排好的任务。Python 基于分配对象与回收对象的差值来安排垃圾回收。当分配数目减去回收数目大于临界值时,触发垃圾回收。可以通过 gc 模块来查看垃圾回收的临界值: import gc gc.get_threshold() (700, 10, 10) 我们可以看到,默认的临界值时 700。 *当你的 Python 程序耗尽了内存后,自动垃圾回收不会运行。*你的程序会抛出异常,这个异常必须被处理,否则你的程序会崩溃。这是由于自动垃圾回收是基于对象的数目而不是基于对象的大小。因此可以考虑在占据大量内存的代码后手动运行垃圾回收。 手动垃圾回收 对于一些程序,尤其是长时间运行的服务端程序或者嵌入式程序,自动垃圾回收可能不足

vscode 常用快捷键

我的未来我决定 提交于 2021-02-18 14:21:20
dart里边经常用到的 别的不知道 option+shift+f 代码对齐格式化 option+shift+o 自动整理引入头文件 删除无用头文件 cmd+[ 右缩进 cmd+] 左缩进 option+↑ 代码上移一行 option+↓ 代码下移一行 option+shift+↑/↓ 复制当前行 option+shift+←/→ 选中当前行 cmd+b 显示/隐藏侧边栏 cmd+shift+p 命令栏 来源: oschina 链接: https://my.oschina.net/u/2429434/blog/4770510

git提交到分支

心不动则不痛 提交于 2021-02-18 14:20:48
git checkout grego@gregoo:mygo$ git checkout origin/ test Note: checking out ' origin/test ' . You are in ' detached HEAD ' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using - b with the checkout command again. Example: git checkout -b < new -branch-name> HEAD is now at be427c9... Create README.md grego@gregoo:mygo$ git checkout master Switched to branch '

动态加载js和css

时光总嘲笑我的痴心妄想 提交于 2021-02-18 14:13:29
一、动态加载CSS 动态创建css样式有两种方式: 1、动态插入css外部文件的方法: function loadStyle(url){   var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; var head = document.getElementsByTagName('head')[0]; head.appendChild(link); } loadStyle('test.css'); 2、动态加载css代码片段 function loadCssCode(code){ var style = document.createElement('style'); style.type = 'text/css'; style.rel = 'stylesheet'; try{ //for Chrome Firefox Opera Safari style .appendChild(document.createTextNode(code)); }catch(ex){ //for IE style.styleSheet.cssText = code; } var head = document

ELF文件格式的详解

六眼飞鱼酱① 提交于 2021-02-18 14:12:36
ELF文件格式的详解 1.说明 2.elf文件的基本格式 3.elf文件的头部信息 4.elf文件的节区(Section) 4.1 节区的作用 4.2 节区的组成 5.elf文件的段(Segment) 6.用python解析elf文件 7.总结 1.说明 ELF的英文全称是The Executable and Linking Format,最初是由UNIX系统实验室开发、发布的ABI(Application Binary Interface)接口的一部分,也是Linux的主要可执行文件格式。 从使用上来说,主要的ELF文件的种类主要有三类: 可执行文件(.out):Executable File,包含代码和数据,是可以直接运行的程序。其代码和数据都有固定的地址 (或相对于基地址的偏移 ),系统可根据这些地址信息把程序加载到内存执行。 可重定位文件(.o文件):Relocatable File,包含基础代码和数据,但它的代码及数据都没有指定绝对地址,因此它适合于与其他目标文件链接来创建可执行文件或者共享目标文件。 共享目标文件(.so):Shared Object File,也称动态库文件,包含了代码和数据,这些数据是在链接时被链接器(ld)和运行时动态链接器(ld.so.l、libc.so.l、ld-linux.so.l)使用的。 本文主要从elf文件的组成构造的角度来进行分析

MySQL老大难事务和锁,一次性讲清楚!

戏子无情 提交于 2021-02-18 14:09:39
点击上方蓝色“ java大数据修炼之道 ”, 选择“ 设为星标 ” 每晚九点: 技术干货 👉 必定奉上 本文来源:http://r6d.cn/acuaX 众所周知, 事务和锁 是mysql中非常重要功能,同时也是面试的重点和难点。本文会详细介绍 事务和锁 的相关概念及其实现原理,相信大家看完之后,一定会对 事务和锁 有更加深入的理解。 “ 本文主要内容是根据掘金小册《从根儿上理解 MySQL》整理而来。如想详细了解,建议购买掘金小册阅读。 ” 什么是事务 在维基百科中,对事务的定义是: 事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成 。 事务的四大特性 事务包含四大特性,即 原子性(Atomicity) 、 一致性(Consistency) 、 隔离性(Isolation)和持久性(Durability) (ACID)。 原子性(Atomicity) 原子性是指对数据库的一系列操作,要么全部成功,要么全部失败,不可能出现部分成功的情况 。以转账场景为例,一个账户的余额减少,另一个账户的余额增加,这两个操作一定是同时成功或者同时失败的。 一致性(Consistency) 一致性是指数据库的完整性约束没有被破坏,在事务执行前后都是合法的数据状态 。这里的一致可以表示数据库自身的约束没有被破坏,比如某些字段的唯一性约束、字段长度约束等等

PageAdmin建站系统模板制作教程1:Razor简介

烈酒焚心 提交于 2021-02-18 13:48:22
在学习PageAdmin cms 建站系统的网站模板制作前,请确保您是前端人员,或者有基本的html,css和Javascript(或jquery)基础。 Razor 不是编程语言,它只是一种标记语法,非常方便前端人员在html页面中调取后台数据。 PageAdmin的模板中就是使用Razor标记来获取数据,相比其他cms的自定义标签,Razor更强大和灵活,支持类似javascript一样的计算,循环等语法,赋值等语法。 什么是 Razor ? Razor 是一种允许您向网页中嵌入基于服务器的代码的标记语法。 当网页被写入浏览器时,基于服务器的代码能够创建动态内容。在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码。由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库。 Razor 基于 Mvc,它为 web 应用程序的页面制作而设计。 和Javascript区别 ? javascript是目前前端人员最常用的脚本,razor在语法,变量,逻辑等方面和javascript语法几乎类似。 不同是:javascript是浏览器来解析,razor是服务器端来解析,javascript主要做页面的效果,razor主要用于服务器端的数据,文件的读取。 javascript语法包含在<script>标签中</script> <script type =

python__高级 : GC垃圾回收相关

痞子三分冷 提交于 2021-02-18 13:46:25
python的垃圾回收机制是以引用计数为主,加上标记-清除,分代收集等辅助方式组成的,如果想打开gc功能,需要 import gc 模块 ,然后 gc.enable() 就打开了这个功能,关闭是 gc.disable() . 查看一个对象的引用计数: sys.getrefcount() 总是会比实际+1 ,因为 sys.getrefcount() 也调用了它一次 . 引用计数被+1的情况: 一.对象被创建 二.对象被引用 三.对象被作为参数,传入到一个函数中 四.对象作为一个元素,存储在容器中 引用计数被-1的情况: 一.对象的别名被赋予新的对象 二.对象的别名被显式销毁 三.一个对象离开它的作用域 四.对象所在的容器被销毁,或从容器中删除对象 gc模块中还有一些方法, 以下为网上找的: 常用函数: 1、 gc.set_debug(flags) 设置gc的debug日志,一般设置为gc.DEBUG_LEAK 2、gc.collect([generation]) 显式进行垃圾回收,可以输入参数,0代表只检查第一代的对象,1代表检查一,二代的对象,2代表检查一,二,三代的对象,如果不传参数,执行一个full collection,也就是等于传2。 返回不可达(unreachable objects)对象的数目 3、gc.set_threshold(threshold0[,

.net必问的面试题系列之基本概念和语法

萝らか妹 提交于 2021-02-18 13:45:17
上个月离职了,这几天整理了一些常见的面试题,整理成一个系列给大家分享一下,机会是给有准备的人,面试造火箭,工作拧螺丝,不慌,共勉。 1.net必问的面试题系列之基本概念和语法 2.net必问的面试题系列之面向对象 3.net必问的面试题系列之设计模式 4.net必问的面试题系列之集合、异常、泛型 5.net必问的面试题系列之简单算法 6.net必问的面试题系列之数据库 7.net必问的面试题系列之web前端 .net打杂工程师的面试感想和总结 ###问题目录 1 字符串中string str=null和string str=""和string str=string.Empty的区别 2 byte b = 'a'; byte c = 1; byte d = 'ab'; byte e = '啊'; byte g = 256; 这些变量有些错误是错再哪里? 3 string和StringBuilder的区别,两者性能的比较 4 什么是扩展方法? 5 byte a =255;a+=5;a的值是多少? 6 什么是装箱和拆箱? 7 值类型和引用类型的区别 8 new关键字的作用 9 int?和int有什么区别 10 C#中的委托是什么? 11 用最有效的方法算出2乘以8等于几? 12 const和readonly有什么区别? 13.现有一个整数number