首页 文章 精选 留言 我的

精选列表

搜索[优化],共10000篇文章
优秀的个人博客,低调大师

Jarvis-拍立淘里面的深度学习引擎-之持续优化

介绍 Jarvis是一款专门为手机端而设计研发的深度学习引擎,它比我们目前已知的所有开源产品都要快。在使用高通芯片的安卓手机上,其他产品在性能上甚至还没有接近于我们的。小小骄傲一下。在最开始的时候,Jarvis was heavily influenced by Caffe2 and borrowed quite a bit of code from it. 但是随着时间的推移以及业务的演进,Jarvis离Caffe2也越来越远,所以,我们最终决定发布独立的产品。 Jarvis由淘宝的 拍立淘 业务而生,已持续稳定服役一年。 性能 距离上次介绍Jarvis又过去了三个月的时间,现在的Jarvis相比之前又有了很多进步,在端上承载的拍立淘业务也逐渐增多。不知不觉间,Jarvis已经成为了最快的那一款。之前我们的CPU实现比ncnn要慢,现在

优秀的个人博客,低调大师

拿什么守护你-PHP程序级守护进程的实现与优化

首先需要解释的是什么是守护进程。 守护进程就是在后台一直运行的进程。比如我们启动的httpd,mysqld等进程都是常驻内存内运行的程序。 针对需求进行分析: 需求:有一个常驻队列messageQueue(假设在redis内存中),这个队列会有可能有请求不定期的往队列中增加元素。同时我们要求在队列中有元素的时候,按照队列顺序将元素pop出来,并进行处理(假设这个处理只是echo ‘test’); 解决方法: 现在假设已经有了两个函数 function oPopMessageQueue(){ …} //获取队列最后一个元素; function vDealElement($element) { …} 处理元素; 要求写出一个守护程序,完成上面的需求。 程序: 好了,这个程序很容易想到,可以使用while循环来做 1 2 3 4 5 6 7 while (true) { if ( $element = oPopMessageQueue()) { vDealElement( $element ); } } 考虑1 : 这个程序如果一直跑的话已经可以满足上面的需求了. 但是考虑到:1 用php进程跑有可能会由于各种情况(比如运行时间过长),进程挂了,这样程序就无法自动重连了. 方法:使用cron 我们在定时脚本中每10分钟起一个进程跑这个程序。 然后设置这个程序的运行时间为10分钟,10分钟后自动取消,于是代码变成 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 while (true) { if ( $element = oPopMessageQueue()) { vCheckTimeLimit(); vDealElement( $elemnt ); } } $timeStart = 0; function vCheckTimeLimit() { global $timeStart ; if ( empty ( $timeStart )) { $timeStart = time(); } if (time() - $timeStart > 60*10) { exit ; } } 1 1 考虑2,可能会有这种需求: 需要有随时让脚本暂停的功能: 1 于是考虑使用文件来增加暂停功能 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 while (true) { if ( $element = oPopMessageQueue()) { vCheckTimeLimit(); vCheckEnd(); vDealElement( $elemnt ); } } function vCheckEnd() { if ( file_exists ( "/home/JesephYe/end" )) { exit ; } } 1 考虑3, 是否可以改成多线程的程序,让运行的效率更高? 1 这个只要把cron的10分钟起一个进程的限制改成每1分钟起一个进程就好了 1 这样能保证有10个线程在运行程序 1 但是有一个基本要求是:oPopMessageQueue()是一个原子操作 本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/archive/2012/03/04/2378783.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

阿里云 ECS Linux 服务器 SSH 服务的安全配置优化

1、修改 ssh 的连接端口,建议改成非标准的高端端口【1024到65535】。 Port 22022 2、禁止 root 用户直接登录 ssh,用普通账号 ssh 连接,然后在切换到 root 账号登录。 在/etc/ssh/sshd_config配置文件中设置以下参数 PermitRootLogin no 以上两个配置,都需修改 ssh 的配置文件 vim /etc/ssh/sshd_config,修改的内容如下。 修改完配置文件后,需要重启 ssh 服务生效。 /etc/init.d/sshd restart 3、限制 ssh 连接的 IP 地址,只允许用户指定的 IP 地址可以 ssh 连接服务器。 修改 /etc/hosts.allow 和 /etc/hosts.deny 这两个配置文件。 vim /etc/hosts.deny #设置禁止所有ip连接服务器的ssh。 sshd:all:deny vim /etc/hosts.allow #设置允许指定ip连接服务器的ssh。 sshd:210.xx.xx.xx:allow 4、按照以上设置后,ssh 登录服务器,需要用普通账号,指定 ssh 的端口,用指定的 IP 地址才可以登录 ssh。 用普通账号登录ssh后,用su命令切换到root账号即可。 本文转自 2013yang 51CTO博客,原文链接:http://blog.51cto.com/yangeinstein/2043386

优秀的个人博客,低调大师

Android内存优化13 内存泄漏常见情况4 资源未关闭泄漏

资源未关闭或释放导致内存泄露 在使用IO、File流或者Sqlite、Cursor等资源时要及时关闭。这些资源在进行读写操作时通常都使用了缓冲,如果及时不关闭,这些缓冲对象就会一直被占用而得不到释放,以致发生内存泄露。因此我们在不需要使用它们的时候就及时关闭,以便缓冲能及时得到释放,从而避免内存泄露。 1.数据库的cursor没有关闭。 操作Sqlite数据库时,Cursor是数据库表中每一行的集合,Cursor提供了很多方法,可以很方便的读取数据库中的值, 可以根据索引,列名等获取数据库中的值,通过游标的方式可以调用moveToNext()移到下一行 当我们操作完数据库后,一定要记得调用Cursor对象的close()来关闭游标,释放资源。 2,未关闭InputStream/OutputStream。 3,Bitmap对象不在使用时调用recycle()释放内存 4,BraodcastReceiver,ContentObserver,File,Cursor,Stream,Bitmap 本文转自 一点点征服 博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/8473599.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

SharePoint 2007 Web Content Management 性能优化系列 1 - 做好拓扑架构规划

是的,你可能有些意外,但如果希望你的SharePoint WCM应用有好的性能,第一个要做的,就是在正式开始动手前,好好规划一下整个服务器场的拓扑结构。 SharePoint 2007支持服务器场部署,我们可以将前端Web服务器、应用服务器(包括Index服务器、Query服务器、文档转换服务器、Excel Services服务器等)和数据库服务器分开部署。最小的服务器场规模,可以将所有服务器角色安装到一台物理服务器上,而对于大型应用而言,将各个服务器角色分开部署到单独的物理服务器上,确实可以大大的提高服务器场的响应速度。 微软发布过两个针对SharePoint WCM的解决方案,它们是Visio格式文件,里面包含了解决方案的描述、需要考虑的问题、推荐的实现方式等等。第一个是针对不常更新Web内容的WCM应用,另外一个是针对经常更新Web内容的WCM应用。我建议您在开始之前,好好看看这两个Visio文件。 我个人的推荐部署拓扑方案: (1)、不要将域控器(Domain Controller)与任何SharePoint服务器安装在一起,这是一种既没有必要、也不方便维护的方法。 (2)、尽量将数据库服务器单独安装到一台物理服务器上,给数据库服务器大一点的内存,SQL Server 2005能够充分的享受大内存的好处,由于SharePoint会将所有数据存放到数据库中,所以好的磁盘IO可以很大的提高数据存取速度,同时RAID-1对于SharePoint数据安全也是很有必要的。如果数据量非常大,那么就要考虑使用多台数据库服务器,给一个Web Application配置多个Content Database,将各个Content Database分布到不同的物理服务器上。 (3)、尽量将应用服务器与前端Web服务器分开到单独的物理服务器上。如果SharePoint中有大量的文档和数据,Index服务是很耗费CPU资源的,所以将Index和Query服务器部署到一台单独的物理服务器上是一个不错的选择。 (4)、对于前端Web服务器,仔细考虑一下,是否有必要使用多台前端Web服务器(也就是说,如果有必要,那就添加一个新的前端Web服务器。怎样才算是有必要呢?我的建议是,在实际环境中亲自体验和测试一下站点的访问速度,比如,使用一些网站压力测试工具来模拟多用户并发访问。任何事先的估算都只是“估计”而已。)。由于SharePoint对服务器场部署的良好支持,我们可以随时将一台新的前端Web服务器添加到整个SharePoint服务器场中,而且SharePoint会自动帮我们在这台新的前端Web服务器上配置IIS站点等,极大的简化了管理员的负担。 关于向SharePoint服务器场中添加新的前端Web服务器,请参考http://technet2.microsoft.com/Office/en-us/library/b4279ff9-2842-475a-8d7f-cc90711c47271033.mspx?mfr=true。 总结来说,前端Web服务器:应用服务器:数据库服务器使用1:1:1在很多场合都够用了,如果是2:1:1则更好。 要提醒的是,如果在服务器场中有多台前端Web服务器,SharePoint自己是不会自动做访问请求分发的,我们要么需要使用一个NLB设备要做请求分发(推荐的方式),要么使用Windows Server自带的NLB功能来实现。不过好消息是,由于SharePoint不会在前端Web服务器上保存任何访问状态信息(比如Session),所以NLB非常简单,我们可以把任意请求分发到任意前端Web服务器上(也就是说,当一个用户第一次打开页面时,NLB将他的请求分发到Web服务器A,用户点击了页面上的一个按钮触发页面刷新,NLB可能将他的请求分发到Web服务器B,由于SharePoint应用不依赖Web服务器上保存的状态信息,所以这是没问题的),而不用关注访问绑定问题。这确实是SharePoint在设计上的一个大亮点! 关于服务器的硬件,要知道,硬件是很便宜的,有些时候吝惜好的硬件投入只会带来更多的麻烦。下面的微软推荐的硬件配置: (1)、数据库服务器:双CPU(主频不低于2.5G),4GB RAM(64位系统可以支持更多的内存),SCSI,RAID-1 (2)、应用服务器(Index、Query、Excel Services、Document Conventer):双CPU(主频不低于2.5G),4GB RAM (3)、前端Web服务器:双CPU(主频不低于3G),>2GB RAM 当然了,并不是说你非得要有上面所说的这些硬件,才能开始玩SharePoint。有时候在真实项目中由于设备所限,我们甚至要将所有东东都安装到一台物理服务器上。我的建议是,如果服务器数量很少,那么内存一定不能低于3GB,然后要有一个双核CPU。 本文转自 kaneb0y 51CTO博客,原文链接:http://blog.51cto.com/kaneboy/280832,如需转载请自行联系原作者

优秀的个人博客,低调大师

SharePoint 2007 Web Content Management 性能优化系列 2 - 32 bits or 64 bits ?

从我的观点来说,64-bits的好处,在现阶段而言,在服务器上的体现更有现实意义。64-bits的硬件上早已经不是问题了,甚至连我现在使用的Centrino Duo笔记本都支持x64架构(虽然我仍然是安装的32-bits Windows Vista)。 64-bits的第一大好处就是支持更多的内存,32-bits的寻址空间不能大于4G(而且由于现在的Windows使用了直接内存访问技术,比如,Windows会将显卡的显存映射成高位的内存地址,通过“模拟的”往内存地址写数据,就能实现更方便的访问显存,所以,一些高位的内存地址已经被占用了,而不能将4G内存地址全部给真正的内存),而64-bits完全没有这个限制。在数据库这样对内存敏感的场合,64-bits将带来很大的优势! 对于SharePoint而言,它自己,以及它所依赖的组件,都有64-bits版本,包括Windows Server 2003、SQL Server 2005、.NET Framework 2.0 & 3.0。所以,SharePoint 2007对64-bits有非常好的支持。对于64-bits SharePoint 2007,在安装、配置上和32-bits没有什么区别。 但是如果安装SharePoint 2007的64-bits版本,你也需要有一些注意的地方。首先,不支持将已有的32-bits SharePoint服务器场升级到64-bits上。如果你希望进行一次这样的迁移,需要先进行备份,然后再恢复到64-bits SharePoint上。 对于SharePoint服务器场中的Application Server而言,使用64-bits还有其他一些需要注意的地方。比如,对于Index Server而言,它是使用iFilter组件来对文档进行全文检索,但是iFilter是分32-bits和64-bits的。为了SharePoint能够对PDF文档进行文件检索,我们需要在服务器上安装PDF iFilter,但Adobe并没有发布官方的64-bits PDF iFilter。(倒是有第三方发布过64-bits的PDF iFilter: http://www.foxitsoftware.com/pdf/ifilter/index.html#downifilter ) SharePoint 2007服务器场还支持32-bits和64-bits的混合部署。一个比较推荐的方式就是,对于SharePoint的前端Web服务器和应用服务器仍然使用32-bits的SharePoint,但是对于数据库服务器,则单独使用64-bits,这样可以让SQL Server 2005充分享受大内存的好处。 本文转自 kaneb0y 51CTO博客,原文链接:http://blog.51cto.com/kaneboy/280829,如需转载请自行联系原作者

资源下载

更多资源
Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册