轻量级

转:花了三个月终于把所有的Python库全部整理了!

三世轮回 提交于 2019-12-03 21:04:30
链接:https://www.jianshu.com/p/2642f9d28f34 库名称简介 Chardet字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable主要用于在终端或浏览器端构建格式化的输出。 difflib,[Python]标准库,计算文本差异 Levenshtein,快速计算字符串相似度。 fuzzywuzzy,字符串模糊匹配。 esmre,正则表达式的加速器。 shortuuid,一组简洁URL/UUID函数库。 ftfy,Unicode文本工具7 unidecode,ascii和Unicode文本转换函数。 xpinyin,将汉字转换为拼音的函数库 pangu.py,调整对中日韩文字当中的字母、数字间距。 pyfiglet,Python写的figlet程序,使用字符组成ASCII艺术图片 uniout,提取字符串中可读写的字符 awesome slugify,一个Python slugify库,用于处理Unicode。 python-slugify,转换Unicode为ASCII内码的slugify函数库。 unicode-slugify,生成unicode内码,Django的依赖包。 ply,Python版的lex和yacc的解析工具 phonenumbers

深入分析Synchronized原理

一曲冷凌霜 提交于 2019-12-03 20:06:27
前言 记得开始学习Java的时候,一遇到多线程情况就使用synchronized,相对于当时的我们来说synchronized是这么的神奇而又强大,那个时候我们赋予它一个名字“同步”,也成为了我们解决多线程情况的百试不爽的良药。但是, 随着学习的进行我们知道在JDK1.5之前synchronized是一个重量级锁,相对于j.u.c.Lock,它会显得那么笨重,以至于我们认为它不是那么的高效而慢慢摒弃它 。 不过, 随着Javs SE 1.6对synchronized进行的各种优化后,synchronized并不会显得那么重了 。下面来一起探索synchronized的基本使用、实现机制、Java是如何对它进行了优化、锁优化机制、锁的存储结构等升级过程。 大家可以点击加群【JAVA架构知识学习讨论群】 473984645, (如多你想跳槽换工作,但是技术又不够,或者工作遇到了瓶颈,我这里有一个Java的免费直播课程,讲的是高端的知识点,只要有1-5年的开发工作经验可以加群找我要课堂链接。)注意:是免费的 没有开发经验的误入。 1 基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。 Synchronized的作用主要有三个 : 原子性 :确保线程互斥的访问同步代码; 可见性 :保证共享变量的修改能够及时可见

WebService另一种轻量级实现—Hessian 学习笔记

£可爱£侵袭症+ 提交于 2019-12-03 19:33:44
最近研究,得知他们在使用一种叫做Hessian的WebService实现方式实现远程方法调用,是轻量级的,不依赖JavaEE容器,同时也是二进制数据格式传输,效率比SOAP的XML方式要高。感觉像是RESTFUL方式类似,好奇之下到网上查阅相关资料,总结如下: 简介 Hessian是由caucho提供的一个基于binary-RPC实现的远程通讯library。   1、是基于什么协议实现的?    基于Binary-RPC协议实现。   2、怎么发起请求?    需通过Hessian本身提供的API来发起请求。   3、怎么将请求转化为符合协议的格式的?    Hessian通过其自定义的串行化机制将请求信息进行序列化,产生二进制流。   4、使用什么传输协议传输?    Hessian基于Http协议进行传输。   5、响应端基于什么机制来接收请求?    响应端根据Hessian提供的API来接收请求。   6、怎么将流还原为传输格式的?    Hessian根据其私有的串行化机制来将请求信息进行反序列化,传递给使用者时已是相应的请求信息对象了。   7、处理完毕后怎么回应?    处理完毕后直接返回,hessian将结果对象进行序列化,传输至调用端。 Hessian 调用实例 a) 编写服务端代码 写一个接口: [java] view plain copy public

轻量级CNN模型之squeezenet

一曲冷凌霜 提交于 2019-12-03 17:25:29
和别的轻量级模型一样,模型的设计目标就是在保证精度的情况下尽量减少模型参数.核心是论文提出的一种叫"fire module"的卷积方式. 设计策略 主要用1x1卷积核,而不是3x3. 减少3x3卷积核作用的channel. 推迟下采样的时间.以获取更大尺寸的feature map.这一点是处于精度的考虑.毕竟feature map的resolution越大,信息越丰富.下采样主要通过pool来完成或者卷积的时候控制stride大小. Fire Module 这个就是网络的核心组件了. 分2部分: squeeze convolution layer expand layer 其中squeeze只有1x1filter,expand layer由1x1和3x3filter组成. 在squeeze层卷积核数记为 s 1 x 1 s1x1,在expand层,记1x1卷积核数为 e 1 x 1 e1x1,而3x3卷积核数为 e 3 x 3 e3x3,这三个属于超参数,可调。为了尽量降低3x3的输入通道数,让 s 1 x 1 < e 1 x 1 + e 3 x 3 s1x1<e1x1+e3x3。 这两层的设计分别体现了策略1(多用1x1filter)和策略2(减少3x3filter作用channel). 首先,squeeze convolution

synchronize底层原理

╄→尐↘猪︶ㄣ 提交于 2019-12-03 11:34:06
1、普通同步方法,锁是当前实例对象 2、静态同步方法,锁是当前类的class对象 3、同步方法块,锁是括号里面的对象 synchronize底层原理: Java 虚拟机中的同步(Synchronization)基于进入和退出Monitor对象实现, 无论是显式同步(有明确的 monitorenter 和 monitorexit 指令,即同步代码块)还是隐式同步都是如此。 同步代码块:monitorenter指令插入到同步代码块的开始位置,monitorexit指令插入到同步代码块的结束位置,JVM需要保证每一个monitorenter都有一个monitorexit与之相对应。任何对象都有一个monitor与之相关联,当且一个monitor被持有之后,他将处于锁定状态。线程执行到monitorenter指令时,将会尝试获取对象所对应的monitor所有权,即尝试获取对象的锁; 对象头: Hotspot虚拟机的对象头主要包括两部分数据:Mark Word(标记字段)、Klass Pointer(类型指针)。其中Klass Point是是对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例,Mark Word用于存储对象自身的运行时数据,它是实现轻量级锁和偏向锁的关键。 Mark Word:用于存储对象自身的运行时数据,如哈希码(HashCode)、 GC分代年龄

Docker

自古美人都是妖i 提交于 2019-12-03 07:10:45
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 来源: https://www.cnblogs.com/yh2two/p/11782432.html

轻量级Web服务器http-server

五迷三道 提交于 2019-12-03 05:25:17
http-server是一个简单的零配置命令行http服务器。可用于h5页面手机端测试 Vue 、Angualr、React项目打包后真机测试 github地址: https://github.com/indexzero/http-server 让电脑和手机处于同一局域网 1、电脑和手机都连路由器 2、电脑上面安装一个360 wifi 或者猎豹wifi http-server安装、使用 安装: npm install http-server -g / cnpm install http-server -g (电脑上面需要安装nodejs) 使用 cd 到要启动的项目目录 打开控制台运行 http-server http-server启动可选参数: 使可选配置: -p 要使用的端口(默认为8080) -a 要使用的地址(默认为0.0.0.0) -d 显示目录列表(默认为“True”) true / false -i 显示autoIndex(默认为“True”) -g或--gzip启用时(默认为“False”),它将用于./public/some-file.js.gz代替./public/some-file.jsgzip压缩版本的文件,并且该请求接受gzip编码。 -e或--ext默认文件扩展名(如果没有提供)(默认为'html') -o 启动服务器后打开浏览器窗口

python几个轻量级web框架

放肆的年华 提交于 2019-12-03 05:12:48
python几个轻量级web框架 2016-04-11 18:04:34 惹不起的程咬金 阅读数 7944 更多 分类专栏: 云计算/大数据/并行计算 Python 我最近发表了一篇名为 ‘7 Minimal Node.js Web Frameworks for 2014 and Beyond‘ 的博文——目前它是我博客访问量最高的文章:超过10000人浏览,分享和评论了这些我总结到一起的web框架。 这教会了我一些事,这类文章是有需求的——因为它提供了触手可及的备查和/或探索了做事情的新方式。我发现很多“周刊”在他们的新闻或是博客上刊登了我的文章,对此我感到很高兴。这促使我尝试把更多其他语言中的此类内容总结到一起,比如Python、Ruby、PHP和JavaScript。 众口难调,我尽量把我搜索的时候出现在靠前位置的那些框架都囊括进来了, 我试着以社区规模大小以及它们在GitHub上的活跃度来为它们排名。我建议您在留言中列出您个人最喜爱的框架(或是您正在使用的框架)的链接,我会尽快把它加入到列表中。 Python 是一个可以让你更快地完成工作,更高效地整合系统的语言。你可以学习使用Python并且马上获得生产力的提升,降低维护成本。 Python版的Hello World程序 你可能忘记该怎么做了,下面是一个提示。 Python 1 print "Hello World!" ;

Java SE1.6中的Synchronized

心不动则不痛 提交于 2019-12-03 04:47:15
1 引言 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。 2 术语定义 术语 英文 说明 CAS Compare and Swap 比较并设置。用于在硬件层面上提供原子性操作。在 Intel 处理器中,比较并交换通过指令cmpxchg实现。比较是否和给定的数值一致,如果一致则修改,不一致则不修改。 3 同步的基础 Java中的每一个对象都可以作为锁。 对于同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前对象的Class对象。 对于同步方法块,锁是Synchonized括号里配置的对象。 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。那么锁存在哪里呢?锁里面会存储什么信息呢? 4 同步的原理 JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明,但是方法的同步同样可以使用这两个指令来实现

聊聊并发(二)Java SE1.6中的Synchronized

岁酱吖の 提交于 2019-12-03 04:47:00
##引言## 在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。 ##术语定义## CAS :Compare and Swap,比较并设置。用于在硬件层面上提供原子性操作。在 Intel 处理器中,比较并交换通过指令cmpxchg实现。比较是否和给定的数值一致,如果一致则修改,不一致则不修改。 ##同步的基础## Java中的每一个对象都可以作为锁。 (1)对于同步方法,锁是当前实例对象。 (2)对于静态同步方法,锁是当前对象的Class对象。 (3)对于同步方法块,锁是Synchonized括号里配置的对象。 当一个线程试图访问同步代码块时,它首先必须得到锁,退出或抛出异常时必须释放锁。那么锁存在哪里呢?锁里面会存储什么信息呢? ##同步的原理## JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitorexit指令实现,而方法同步是使用另外一种方式实现的,细节在JVM规范里并没有详细说明