轻量级

.NET平台常用的框架整理

五迷三道 提交于 2019-12-16 15:51:18
.NET平台常用的框架整理 分布式缓存框架: Microsoft Velocity:微软自家分布式缓存服务框架。 Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度。 Redis:是一个高性能的KV数据库。 它的出现很大程度补偿了Memcached在某些方面的不足。 EnyimMemcached:访问Memcached最优秀的.NET客户端,集成不错的分布式均衡算法。 开源的.NET系统推荐: OXITE:微软ASP.NET MVC案例演示框架。 PetShop:微软ASP.NET宠物商店。 Orchard:国外一个MVC开源的博客系统。 SSCLI:微软在NET Framework 2.0时代的开源代码。 DasBlog:国外一个基于ASP.NET的博客系统。 BlogEngine.NET:国外一款免费开源的博客系统。 Dotnetnuke.NET:一套非常优秀的基于ASP.NET的开源门户网站程序。 Discuz.NET:国内开源的论坛社区系统。 nopCommerce和Aspxcommerce:国外一套高质量的开源B2C网站系统。 JumboTCMS和DTCMS:国内两款开源的网站管理系统: 日志记录异常处理: Log4Net.dll:轻量级的免费开源.NET日志记录框架。 Enterprise Library Log Application

花了三个月终于把所有的 Python 库全部整理了!可以说很全面了

允我心安 提交于 2019-12-16 14:02:11
库名称简介 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,解析电话号码,格式,存储和验证的国际电话号码。 python-user-agents

JVM中锁优化简介

两盒软妹~` 提交于 2019-12-16 09:41:27
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文将简单介绍HotSpot虚拟机中用到的锁优化技术。 自旋锁 互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。而在很多应用上,共享数据的锁定状态只会持续很短的一段时间。若实体机上有多个处理器,能让两个以上的线程同时并行执行,我们就可以让后面请求锁的那个线程原地自旋(不放弃CPU时间),看看持有锁的线程是否很快就会释放锁。为了让线程等待,我们只须让线程执行一个忙循环(自旋),这项技术就是自旋锁。 如果锁长时间被占用,则浪费处理器资源,因此自旋等待的时间必须要有一定的限度,如果自旋超过了限定的次数仍然没有成功获得锁,就应当使用传统的方式去挂起线程了(默认10次)。 JDK1.6引入自适应的自旋锁:自旋时间不再固定,由前一次在同一个锁上的自旋时间及锁的拥有者的状态来决定。如果在同一个锁对象上,自旋等待刚刚成功获得过锁,并且持有锁的线程正在运行中,那么虚拟机就会认为这次自旋也很有可能再次成功,进而它将允许自旋等待持续相对更长的时间。 锁削除 锁削除是指虚拟机即时编译器在运行时,对一些代码上要求同步,但是被检测到不可能存在共享数据竞争的锁进行削除(主要判定依据来源于逃逸分析的数据支持,如果判断到一段代码中

Synchronized原理分析

社会主义新天地 提交于 2019-12-16 00:13:20
文章简介 synchronized想必大家都不陌生,用来解决线程安全问题的利器。同时也是Java高级程序员面试比较常见的面试题。这篇文正会带大家彻底了解synchronized的实现。 内容导航 什么时候需要用Synchronized synchronized的使用 synchronized的实现原理分析 什么时候需要用Synchronized 想必大家对synchronized都不陌生,主要作用是在多个线程操作共享数据的时候,保证对共享数据访问的线程安全性。 比如在下面这个图片中,两个线程对于i这个共享变量同时做i++递增操作,那么这个时候对于i这个值来说就存在一个不确定性,也就是说理论上i的值应该是2,但是也可能是1。而导致这个问题的原因是线程并行执行i++操作并不是原子的,存在线程安全问题。所以通常来说解决办法是通过加锁来实现线程的串行执行,而synchronized就是java中锁的实现的关键字。 synchronized在并发编程中是一个非常重要的角色,在JDK1.6之前,它是一个重量级锁的角色,但是在JDK1.6之后对synchronized做了优化,优化以后性能有了较大的提升(这块会在后面做详细的分析)。 先来看一下synchronized的使用 Synchronized的使用 synchronized有三种使用方法,这三种使用方法分别对应三种不同的作用域,代码如下

python常用库(转)

情到浓时终转凉″ 提交于 2019-12-15 22:40:25
转自 http://www.west999.com/info/html/wangluobiancheng/qita/20180729/4410114.html Python常用的库简单介绍一下 fuzzywuzzy ,字符串模糊匹配。 esmre ,正则表达式的加速器。 colorama 主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable 主要用于在终端或浏览器端构建格式化的输出。 difflib ,[Python]标准库,计算文本差异 。 Levenshtein ,快速计算字符串相似度。 Chardet 字符编码探测器,可以自动检测文本、网页、xml的编码。 shortuuid ,一组简洁URL/UUID函数库。 ftfy ,Unicode文本工具 unidecode ,ascii和Unicode文本转换函数。 xpinyin ,将汉字转换为拼音的函数库。 pangu.py ,调整对中日韩文字当中的字母、数字间距。 pyfiglet ,Python写的figlet程序,使用字符组成ASCII艺术图片。 uniout ,提取字符串中可读写的字符。 awesome slugify ,一个Python slugify库,用于处理Unicode。 python-slugify ,转换Unicode为ASCII内码的slugify函数库。 unicode-slugify

C++实现轻量级极简httpserver和httpclient(转)

大城市里の小女人 提交于 2019-12-15 18:51:37
转自:https://blog.csdn.net/u012234115/article/details/79596826 一般来说,C++的项目多是偏底层,不怎么需要跟http打交道,但有时候又需要在C++后端项目中加入一些简单 http接口,比如游戏运营服务器,金融交易监控服务等。 但是传统的实现方法比如采用libcurl,asio等较为重型的框架来做有没有必要,因此,这里采用 mongoose 这个库来实现基本的httpserver和httpclient功能,非常简单,包含一个h文件,一个cpp文件到工程中就行了,无需编译,无需链接库。 本文实现了一个project,将mongoose中提供的http相关api封装成了httpserver类和httpclient类,方便调用,目录结构如下: ├─common ├─mongoose.h └─mongoose.cpp ├─httpclient ├─http_client.h ├─http_client.cpp └─main.cpp └─httpserver └─web └─index.html ├─http_server.h ├─http_server.cpp └─main.cpp 编译环境:win10,vs2015, C++11 (其实是跨平台的) http_server.h #pragma once #include

轻量级的目录访问协议{LDAP,Light Directory Access Protocol}

ぃ、小莉子 提交于 2019-12-15 17:30:05
轻量级的目录访问协议 用来集中提供用户名、密码、于明、通讯录、……、电子邮件 教学环境中: 预先配置好一台LDAP认证服务器 classroom, 提供网络用户账号 ldapuser0、ldapuser1、……ldapuser20 任务二:将server0加入集中认证域 1. 配置前检查用户 ldapuser0 是否可用 # id ldapuser0 或者 # ssh ldapuser0@server0.example.com 2. 配置 LDAP 客户端 1)装包 sssd 2)配置 认证服务器地址相关信息 # authconfig-tui ==> 选择LDAP方式提供用户信息、认证 ==> 选择“使用TLS”,在“服务器”填写classroom.example.com,在“基础DN”填写认证领域名称 dc=example,dc=com ==> 根据提示下载并部署用来加密的证书文件到指定位置 # cd /etc/openldap/cacerts # wget http://classroom.example.com/pub/example-ca.crt 3)起服务 sssd 3. 再次检查用户 ldapuser0 是否可用 # id ldapuser0 来源: CSDN 作者: wsylina 链接: https://blog.csdn.net/wsylina/article

Java与线程

烂漫一生 提交于 2019-12-09 13:28:46
  线程是比进程更轻量级的调度执行单位,线程的引入可以把一个进程的资源分配和执行调度分开,各个线程可以共享进程资源,又可以独立调度。   每个已经执行start()方法且还未结束的java.lang.Thread类的实例就代表了一个线程。 1.线程的实现(三种): 使用内核线程实现、使用用户线程实现、使用用户线程加轻量级进程混合实现    1)使用内核线程实现(一对一线程模型): 内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。程序一般不会直接使用内核线程,而是去使用它的一种高级接口——轻量级进程,即线程;只有先支持内核线程,才能有轻量级进程。但轻量级进程具有它的局限性:首先,由于是基于内核线程实现的,所以各种线程操作都需要进行系统调用,而系统调用代价较高,需要在用户态和内核态之间来回切换。轻量级进程要消耗一定的内核资源,因此一个系统支持的轻量级进程的数量是有限的。    2)使用用户线程实现(一对多线程模型): 从广义上,一个线程只要不是内核线程,就可以认为是用户线程。从狭义上,用户线程是指完全建立在用户空间的线程库上,系统内核不能感知线程存在的实现。用户线程的建立、同步、销毁和调度完全在用户台中完成,不需要内核的帮助。使用用户线程的优势在于不需要系统内核支援

一个轻量级的框架

廉价感情. 提交于 2019-12-06 16:03:13
试了一个HTTPServer,RequestHandle的数据响应服务,响应速度比较慢(只是还可以接受而已);又试了一个SocketServer - Client 响应非常快可以作为一组分布式应用的数据服务内核;Web-Client的优势在于一个应用的GUI开发成本很低,且适应性、通用性很广,如果没有JavaScript等客户端的脚本、插件,非常容易获得用户的信任,广泛使用。 可以这样设想: 应用的核心服务由SocketServer提供;一般用户通过Web访问HTTPServer,由HTTPServer整理为规范的信息请求格式,从SocketServer抓取数据并组织GUI输出;高端用户通过提供的TK应用直接同SocketServer通讯; Python的WebFramework很多,有不少非常强大的,有不少很轻量的。但仅一两周来未能有哪个直接抓住我的心。 一个轻量级WebFramework的作用是快速搭建起一个基于Browse-Server的应用。包括Web服务、数据库、模板、Python实现的URL逻辑等。 其实Python本身已经非常丰富强大了。Python的string.Template可以完成模板的大部分功能,SQLite是个绝对有效够用的轻量级数据库,HTTPServer,RequestHandle等完全可以实现Web服务的发布。 感觉关键是如何组织

linux 轻量级服务器 部署jdk+tomcat+mysql环境

拜拜、爱过 提交于 2019-12-06 07:07:53
网站后端开完发了,但总归要部署上去的啊,作为一个对服务器一窍不通的小白开始,大概用了一整个下午,不过最后终于成功了。之间走过不少坑,希望能自己做个教程,可以帮助那些系统为l阿里云Linux的学生党们; 我的系统是CentOS,要部署的环境是 tomca8.5+jdk1.8+MYSQL;自己的环境自己确定,下载相应的tomcat,jdk包。mysql直接在linux上下载即可。 ok,闲话少叙; 条件: 自己买了一台学生机, putty(用于远程控制服务器,也可以在阿里云网页上直接控制) filezilla(用于向阿里云上传文件) jdk压缩包, tomcat压缩包。 第一步:准备工作 运行 systemctl status firewalld命令查看当前防火墙的状态。 如果防火墙的状态参数是 inactive,则防火墙为关闭状态。 如果防火墙的状态参数是 active,则防火墙为开启状态。本示例中防火墙为开启状态,因此需要关闭防火墙。 如果您想临时关闭防火墙,运行命令 systemctl stop firewalld。 然后打开端口号,轻量级服务器比较简单 控制台——进入自己服务器——安全——防火墙——添加规则 然后打开3306、8080的端口; 二、安装JDK 1、新建一个目录 mkdir /usr/java 2、解压JDK安装压缩包(本示例中为 jdk-8u191-linux