主流数据库连接池常用的主流开源数据库连接池有C3P0、DBCP、TomcatJdbcPool、BoneCP、Druid等C3p0:开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。单线程,性能较差,适用于小型系统,代码600KB左右。DBCP(DatabaseConnectionPool):由Apache开发的一个Java数据库连接池项目,Jakartacommons-pool对象池机制,Tomcat使用的连...
继续阅读 >
分类目录归档:编程语言
2018
10-11
10-11
[译] 谷歌团队的容器运维最佳实践
谷歌大神们带你进行容器运维最佳实践本文介绍了一组使容器更易于运维的最佳实践。这些实践涉及安全性、监控和日志记录等广泛的主题,旨在使应用程序更容易在KubernetesEngine和一般的容器中运行。这里讨论的许多实践都受到12因素方法的启发,12因素方法是一个构建云原生应用程序的优质资源。使用容器的原生日志记录机制重要性:高作为应用程序管理的一部分,日志中包含宝贵的信息,可让人了解应用程...
继续阅读 >
2018
10-10
10-10
2018年,这些UI设计趋势正在流行
数字设计领域和时尚圈是一样一样的,总会有各种各样的趋势让人眼花缭乱。无论是用户界面的视觉元素,还是用户体验的细节,总有许多值得说道的新玩法和新方向。就目前来看,UI设计的大趋势是更加大胆新颖的视觉设计,通过富有表现力的设计技法,为用户提供更加沉浸式的体验。虽然从关键词上来看,大家都在追人工智能(AI),但是落地的设计当中,跟得最紧的依然是现实增强(AR)和虚拟现实(VR),在2017年的风口上吹了整整一年...
继续阅读 >
2018
09-18
09-18
十年程序员用眼告诉你 2018 PHP 不一样
PHP从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷,Node.js、GO和Python不断地在挑战PHP的地位。这些技术的推动者非常热衷于唱衰PHP,PHP语言的未来在哪里?PHP程序员当如何应对未来的变革?作为老牌的Web后端编程语言,PHP在全球市场占有率非常高,仅次于Java,从各个招聘网站的数据上来看PHP开发的职位非常多,薪资水平也非常不错。实际在中小企业、互联网...
继续阅读 >
2018
09-13
09-13
从Nginx、Apache工作原理看为什么Nginx比Apache高效
Nginx才短短几年,就拿下了web服务器大笔江山,众所周知,Nginx在处理大并发静态请求方面,效率明显高于httpd,甚至能轻松解决C10K问题。在高并发连接的情况下,Nginx是Apache服务器不错的替代品。Nginx同时也可以作为7层负载均衡服务器来使用。根据我的测试结果,Nginx0.7.14+PHP5.2.6(FastCGI)可以承受3万以上的并发连接数,相当于同等环境下Apache的10倍。一般来说,4GB内存的服务器+Apache(prefork模式...
继续阅读 >
2018
09-13
09-13
JavaScript中Array方法的正确打开方式
在过去的几个月,我发现我的拉取请求中存在四个完全相同的JavaScript错误。于是我写了这篇文章,总结了如何在JavaScript中正确使用地使用Array的方法!用Array.includes代替Array.indexOf“如果你要在数组中查找元素,请使用Array.indexOf”。我记得在学习JavaScript的时候,在教材中读到这样的一句话。毫无疑问,这句话是真的!MDN文档写道,Array.indexOf将“返回第一次出现给定元素的索引”。...
继续阅读 >
2018
09-13
09-13
谷歌为何会选用TypeScript?
我已经使用TypeScript两年多时间,是时候写一两篇文章来总结一下了。谷歌在很早之前就张开双臂拥抱Web应用程序,Gmail已经发布14年了。当时,JavaScript的世界是疯狂的。Gmail工程师不得不为IE糟糕的垃圾回收算法捏一把汗,他们需要手动将字符串文字从for循环中提取出来,以避免GC停顿。最近,我找到了那个时代一个设计文档,是关于如何“minify”JavaScript文件的,只不过一些工具仅用于Windows平台。这些事情在今天看来...
继续阅读 >
2018
09-13
09-13
Java序列化的状态
关键要点Java序列化在很多库中引入了安全漏洞。对序列化进行模块化处于开放讨论状态。如果序列化能够成为模块,开发人员将能够将其从攻击表面上移除。移除其他模块可以消除它们所带来的风险。插桩提供了一种编织安全控制的方法,提供现代化的防御机制。多年来,Java的序列化功能饱受安全漏洞和zero-day攻击,为此赢得了“持续奉献的礼物”和“第四个不可饶恕的诅咒”的绰号。作...
继续阅读 >
2018
09-10
09-10
Android 开发技术周报 Issue#192
新闻谷歌要求安卓9.0设备必须加入防回滚:降级刷机没戏了Android9.0Pie带来157个新表情符号并修改了部分旧EmojiAndroid9.0Pie中11个低调但实用的细节改进Android9Pie所有设备默认启用自动激活Wi-Fi功能AndroidP定名AndroidPie下一代Q系统代号很难起谷歌宣布推出Dart2稳定版和DartWeb平台教程Flutter的原理及美团的实践译】使用Flutte...
继续阅读 >
2018
09-10
09-10
Android Native Crash 收集
本篇核心讲解了自己实现一个AndroidNativeCrash收集的方案步骤,重点问题解决办法。对本文有任何问题,可加我的个人微信:kymjs123在Android平台上,NativeCrash一直是比较麻烦的问题,因为捕获麻烦,获取到了内容又不全,内容全了信息又不对,信息对了又不好处理。比JavaCrash不知道麻烦多少倍。今天跟大家讲一下,我最近掉了几百根头发写出来的一个NativeCrash收集的功能(脱发已经越来越严重了)...
继续阅读 >
2018
09-05
09-05
C语言头文件组织与包含原则
说明本文假定读者已具备基本的C编译知识。如非特殊说明,文中“源文件”指*.c文件,“头文件”指*.h文件,“引用”指包含头文件。一、头文件作用C语言里,每个源文件是一个模块,头文件为使用该模块的用户提供接口。接口指一个功能模块暴露给其他模块用以访问具体功能的方法。使用源文件实现模块的功能,使用头文件暴露单元的接口。用户只需包含相应的头文件就可使用该头...
继续阅读 >
2018
09-03
09-03
C和Go相互调用
C可以调用Go,并且Go可以调用C,如果更进一步呢,C-->Go-->C或者Go-->C-->Go的调用如何实现?本文通过两个简单的例子帮助你了解这两种复杂的调用关系。本文不涉及两者之间的复杂的数据转换,官方文章C?Go?Cgo!、wiki/cgo和cmd/cgo有一些介绍。Go-->C-->GoGo程序调用C实现的函数,然后C实现的函数又调用Go实现的函数。1、首先,我们新建一个hello.go的文件:hello.go...
继续阅读 >
2018
09-03
09-03
谷歌推出最新AngularJS升级工具,可快速迁移至Angular
众所周知,AngularJS和Angular虽说是一脉相承,但其实是两个不同的产品:AngularJS指的是Angular2.0之前(即AngularJS1.x)的版本,Angular指Angular2.0之后的版本,由于Angular不兼容AngularJS,这让很多用AngularJS的开发者感觉被谷歌抛弃了,纷纷转向其他的框架,而坚持使用Angular的开发者也开始了迁移之路。2015年,谷歌曾推出一个名为ng-upgrade的组件,帮助开发者从Angular1顺利迁移至Angular2,它能处理依赖...
继续阅读 >
2018
08-28
08-28
iOS 利用AFNetworking实现大文件分片上传
概述一说到文件上传,想必大家都并不陌生,更何况是利用AFNetworking(PS:后期统称AF)来做,那更是小菜一碟。比如开发中常见的场景:头像上传,九宫格图片上传...等等,这些场景无一不使用到文件上传的功能。如果利用AF来实现,无非就是客户端调用AF提供的文件上传接口即可,API如下所示:-(nullableNSURLSessionDataTask*)POST:(NSString*)URLStringparameters:(nullableid)para...
继续阅读 >
2018
08-28
08-28
数据埋点太难!知乎的做法有何可借鉴之处?
埋点作为商业智能(BI)和人工智能(AI)体系中重要的一环,是公司提升产品工程质量、实施ABTesting、个性化推荐服务重要的数据来源。在传统的纯Web和Native开发的产品中,埋点从技术的角度来说未必多深奥,但从业务的角度来说要做到埋点设计规范、流程高效和保证质量却是很难。本文重点介绍一下知乎客户端的埋点模型、流程和平台技术。客户端埋点为什么难?Web端的埋点可以随着新代码上线即时生效,对版本...
继续阅读 >
2018
08-21
08-21
一起看懂Redis两种持久化方式的原理
Redis为持久化提供了两种方式:RDB:在指定的时间间隔能对你的数据进行快照存储。AOF:记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据。本文将通过下面内容的介绍,希望能够让大家更全面、清晰的认识这两种持久化方式,同时理解这种保存数据的思路,应用于自己的系统设计中。持久化的配置RDB与AOF持久化的工作原理如何从持久化中恢复数据关于性能与实践建议持久...
继续阅读 >
2018
08-14
08-14
RxJava 在闲鱼系统吞吐量提升上的实践
引言响应式编程最简单的定义是Reactiveprogrammingisprogrammingwithasynchronousdatastreams。无论是从Spring5中引入的响应式编程框架还是java9中集成的响应式流,都能看到响应式编程的影子。可以说响应式编程代表了未来编程的方向。响应式编程其天然就是非阻塞的,当数据准备完成后自动触发下一个动作而不是等待数据完成。这种思想再结合异步化编程使得我们在统一线程模型,降低多线程编程成本的同时提升整个...
继续阅读 >
2018
08-10
08-10
Google 升级关键云数据库服务
谷歌在最近结束的GoogleCloudNextconference上公布了新的数据库功能和合作关系。其中包括对CloudFirestore的beta访问的扩展和用于Cloud Bigtable的新功能,以及CloudSpanner的广受欢迎的特性。同时,还宣布了对SAP和Oracle工作负载的扩展支持。谷歌云的第一方数据库服务的产品组合非常丰富。客户可以通过CloudSQL管理MySQL和PostgreSQL数据库。去年发布的GoogleCloudSpanner是谷歌针对关系数据库的现...
继续阅读 >
2018
08-08
08-08
CPU核心架构及对应型号、芯片组一览表
IntelP6以来核心架构及对应型号、芯片组一览表注1:5系列以前的芯片组部分可以支持多代处理器(如部分945可以支持65nm、45nm的处理器),5系列开始此现象较少见。注2:插座兼容性①Socket370接口处理器可以通过转接卡转为Slot1接口②Socket478接口处理器可以通过转接卡转为Socket423接口③Socket478接口处理器可以通过转接卡转为LGA775接口④LGA771(服务器处理器,本表不收录)接口处理器可以通过转接贴或硬改转为LGA775接口...
继续阅读 >
2018
08-08
08-08
在visual studio 2017上编写汇编语言
visualstudio2017上的debug功能比较强大,使用visualstudio可以更好的帮助我们学习汇编语言。综上参考了几位牛人博主以及自己的一点总结使vs2017成功在电脑上运行。第一步下载vs(作者已经下好最小的vs即可以运行c++)从官网下载或者百度第二步有打开vs新建项目 并找到windows桌面向导(最好是这个其他的像空项目或桌面应用程序均无法运行新建之后选择空项目复选框并取消安全开发生命周期检查...
继续阅读 >
2018
08-08
08-08
汇编程序开发环境搭配
引子由于这些日子一直都在研究底层的技术,从Windows驱动程序,到Windows内核等等技术的学习,让我对底层的技术越发有兴趣了,而刚好,在研究WRK时,对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻,所以越发的想学习汇编程序设计来提升功力,而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看,所以只好晚上回来学习了,汇编看了几个晚上,也算是蛮有感觉的。...
继续阅读 >
2018
08-08
08-08
如何正确使用async/await?
ES7引入的async/await是JavaScript异步编程的一个重大改进,提供了在不阻塞主线程的情况下使用同步代码异步访问资源的能力。在本文中,我们将从不同的角度探索async/await,并演示如何正确有效地使用它们。async/await的好处async/await给我们带来的最重要的好处是同步编程风格。我们来看一个例子。//async/awaitasyncgetBooksByAuthorWithAwait(authorId){constbooks=awaitbookModel.fetchAll();returnb...
继续阅读 >
2018
08-02
08-02
MySQL并行复制的深入浅出
一、并行复制的背景首先,为什么会有并行复制这个概念呢?1.DBA都应该知道,MySQL的复制是基于binlog的。2.MySQL复制包括两部分,IO线程和SQL线程。3.IO线程主要是用于拉取接收Master传递过来的binlog,并将其写入到relaylog4.SQL线程主要负责解析relaylog,并应用到slave中5.不管怎么说,IO和SQL线程都是单线程的,然后master却是多线程的,所以难免会有延迟,为了解决这个问题,多线程应运而生...
继续阅读 >
2018
07-31
07-31
2018年,20大Python数据科学库都做了哪些更新?
2018年,Python仍然是数据科学领域解决重大任务和挑战的佼佼者。去年,我们发了一篇博文,列举了一些被证明是最有用的Python库。今年,我们扩充了原来的清单,并重新审视之前讨论过的库,重点关注在过去一年内出现的更新。我们对它们进行了分组,排序不分先后,因为真的说不清它们哪个更好。核心库与统计1.NumPy(提交:17911,贡献者:641)一般我们会将科学领域的库作为清单打头,NumPy是该领域的主要软件库之一...
继续阅读 >