Java Web高性能开发(三)
今日要闻:
Clarifai:可识别视频中物体
最近几年,得益于深度学习技术的发展,谷歌和Facebook等企业的研究人员在图形识别软件领域取得了重大突破。现在,一家名为Clarifai的创业公司则提供了一项新服务,利用深度学习技术来理解视频内容。
深度学习需要借助一个模拟“神经元”的网络来处理数据,并且利用实例数据对其进行训练。Clarifai的技术源自纽约大学的研究,该公司2013年在一项著名的图片内容识别软件竞赛中取得前五名。
今日英文:
http://docs.oracle.com/cd/E11882_01/java.112/e16548/jdbcvers.htm#JJDBC28111
SQLXML 类型(Sql:2003)
需要导入
xdb.jar
和 xmlparserv2.jar
设置
oracle.jdbc.getObjectReturnsXMLType
=false 让getObject
返回java.sql.SQLXML
类型
否则返回
oracle.xdb.XMLType 类型(10g以前)
import java.sql.*;
import java.util.Properties;
import oracle.jdbc.pool.OracleDataSource; public class SQLXMLTest
{ public static void main(String[] args)
{ Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
PreparedStatement ps = null; String xml = "<?xml version=\"1.0\"?>\n" +
"<oldjoke>\n" +
"<burns>Say <quote>goodnight</quote>, Gracie.</burns>\n" +
"<allen><quote>Goodnight, Gracie.</quote></allen>\n" +
"<applause/>\n" +
"</oldjoke>"; try
{ OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@//localhost:1521/orcl");
ods.setUser("scott");
ods.setPassword("tiger");
conn = ods.getConnection(); ps = conn.prepareStatement("insert into x values (?, ?)");
ps.setString(1, "string to string");
SQLXML x = conn.createSQLXML();//初始化
x.setString(xml);//赋值
ps.setSQLXML(2, x);//绑定,不可以set空的Sqlxml
ps.execute();
x.free();//释放
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from x");
while (rs.next())
{ System.out.println(rs.getString(1) + "\n" + rs.getSQLXML(2).getString());//取出为String
} rs.close();
ps.close();
} catch (SQLException e){e.printStackTrace ();} }
}
技术区:
Java Web高性能开发(三)优化实战
1.JS模块化技术提出按需加载,也就是当用户触发该功能的时候,那个功能才真正的被加载。
但模块如果是懒加载的,粒度不能太小,也就是模块不能太小。
根据网站的规模、团队的规模、自己对模块化技术的掌握程度来选择是否使用模块化技术。当你的团队预计或者已经发展到一个很大的规模,需要多人维护和开发自己的模块,那么模块化是个不错的选择。如果你的网站发展壮大到功能之间经常互相影响,大量可重用模块无组织,那么模块化就是一个最好的解决方案。当然,这一切都要取决于你是否可以 hold 住模块化技术。
2.HTML 的渲染和加载顺序是从上往下,必须等到这个 JavaScript 下载完毕才会渲染后续的部分。
主功能,需要及时反馈,如页面点击监听等 ,应放在头部
辅功能,不着急加载,如 SNS 分享按钮,流量统计,后台任务等 可以放在尾部
功能代码按类型归类到不同的 JavaScript 文件,比如应该放头部和应该放尾部的代码,最好不要合并在一起。
3.CSS Sprite:网页框架显示之后,许多背景部分迟迟没有显示出来,包括头部,模块头部背景,小图片,过一会就出现用 CSS Sprite 的背景一次性显示出来,形成所说的背景延迟现象。
如何让 CSS 的图片在网页框架显示前就被加载,就变为了一个难题。
可以在网页的顶部,添加隐藏的<img>图像标签,来加载 CSS 图片,CSS 链接在<img>图像标签后面,也就是网页会等到图片加载完后加载 CSS,CSS 再请求图片。发现如果图片已经被加载过,就不会再加载,而是直接渲染页面,这就达到了 CSS 图片优先于 CSS 文件和网页内容加载的目的。
4.传统的懒加载策略,当用户匀速一直下拉网页时,网页图片的加载时常有卡顿现象,原因是促发的多个图片批量下载导致的; 对网页上下移动的控制要求很高,在频繁的上下移动、快速移动后,图片有时无法加载;
所有的 img 标签,定义为:<img src=“wait.png” oriSrc=“真实图片地址”>,然后在网页 onload 事件后,设置 2 秒的定时器:
setTimeout(function(){var im = $(“img[src=‘wait.png’]”); im.attr(“src”, im.attr(“oriSrc”)); }, 2000);
代码和原理很简单,先让图片都显示等待,由于同一张图片被多次引用是不会被重复加载的,所以这样没问题。然后在网页加载 2 秒后显示所有的图片。
网页框架被快速的显示,由于图片来自淘宝,加载也很快。同时,提示性的等待图片加载,主动的将响应信息反馈给用户,也是一种用户体验的提升,总体来说已经达到了理想中的效果。
5.适当时候提示下,来掩盖问题
为每个非_target 的超链接或者表单的点击,添加点击事件处理,处理逻辑也很简单,就是设置 3 秒超时,显示等待对话框。如果在 3 秒内页面发生跳转,那么这个等待对话框就不会出现,否则会弹出提示用户等待,从而及时的将响应反馈给用户,减少用户空白等待时间。
优化的目的,就是不要让用户一直得不到响应,避免空白等待,让用户体验越来越好。
非技术:
黑客马拉松是程序员的“美国偶像”,非常受欢迎。参与黑客马拉松的,除了热衷钻研技术的软件工程师,还有来自风投公司的团队。黑客马拉松一般长达几十个小时,参赛者累了或坐或卧,现场休息。“黑客马拉松”逐渐成为插件开发的主要形式:一群高手云集一堂,在几十个小时内拿出作品,择优而录。
“黑客马拉松”就像程序员版的《美国偶像》,极其火爆。有了更加易用的软件编写工具,加上各公司乐于让第三方分享他们的数据
黑客马拉松不是突然冒出来的,它们源自编码潮流。电影《社交网络》有一幕很出名:马克·扎克伯格在哈佛一间宿舍里举行了10分钟的编码比赛,赢家成了他第一位实习生。
财富500强公司希望借黑客马拉松来宣传自己,AT&T、微软、诺基亚,甚至甚至是联合利华这样的巨头都主办过黑客马拉松和插件大赛。办一场 100人参加的比赛,只需投入5000美元——考虑到如果某位参赛者做出一鸣惊人的插件、被公司推到市场上带来的回报,这笔投资堪称微不足道。
风险投资者也把黑客马拉松视为寻找人才和投资目标的理想场所。投资者特别喜欢黑客马拉松,并会循例派下级员工混迹其中的原因:这里可以发现人才。“过去大家习惯于在技术大会上包下一个活动室。现在的潮流是,如果你想找工程师,就去黑客马拉松。”
风险投资人不是唯一在黑客马拉松转悠的人。独立的技术猎头尤其积极,他们的理由也很充分:一位软件工程师的起薪可以高达10万美元,而猎头可以拿到他头一年工资20%的佣金。
Keyani 说,“黑客马拉松”上有一个很关键的原则:不能做自己的日常工作,这是因为活动的主要目的是激发新点子。每次活动都会出现四五项新想法,并且使用在网站上面,有些主意甚至改变了公司的方向。比如,公司内部一直不愿意构建的聊天客户端。“编码胜过了争论”,Keyani 说,“你可以为一件事情争上两天,或者你可以在一小时内做好,然后证明你的观点”。
黑客马拉松”的核心理念是,以不同的方式思考你以前没有机会专注的主意。Kayani 说,许多公司都有”思考周“的观点,在一周内进行头脑风暴活动。那不一定是在深夜,”如果一个公司雇佣了合格的员工,相信他们能有好主意,就应该给予他们空闲时间和自由度,让他们在公司需要探索的方面,想出一些了不起的东西”。
Java Web高性能开发(三)的更多相关文章
- Java Web 高性能开发,前端的高性能
Java Web 高性能开发,第 2 部分: 前端的高性能 Web 发展的速度让许多人叹为观止,层出不穷的组件.技术,只需要合理的组合.恰当的设置,就可以让 Web 程序性能不断飞跃.Web 的思想是 ...
- Java Web高性能开发(二)
今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买 ...
- Java Web 高性能开发,第 3 部分: 网站优化实战
这个系列的前两篇,介绍了前端的优化技术,这些技术秉承了前人至高无上的智慧,我只是负责吸收和传播.然而,这些技术一般也都是某某大型网站的技术经验,我们大部分人或许只能接触到相对小规模的网站,小规模的网站 ...
- Java Web 高性能开发,第 2 部分: 前端的高性能
Web 发展的速度让许多人叹为观止,层出不穷的组件.技术,只需要合理的组合.恰当的设置,就可以让 Web 程序性能不断飞跃.Web 的思想是通用的,它们也可以运用到 Java Web.这一系列的文章, ...
- Java Web 高性能开发,第 1 部分: 前端的高性能
Web 发展的速度让许多人叹为观止,层出不穷的组件.技术,只需要合理的组合.恰当的设置,就可以让 Web 程序性能不断飞跃.所有 Web 的思想都是通用的,它们也可以运用到 Java Web.这一系列 ...
- Java Web高性能开发 - 前端高性能
作者:IBM developerWorks链接:https://www.ibm.com/developerworks/cn/java/j-lo-javawebhiperf1/著作权归作者所有.商业转载 ...
- 基于Spring MVC的Web应用开发(三) - Resources
基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的we ...
- 使用MyEclipse搭建java Web项目开发
转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成 ...
- java web面试技巧,数据库面试,java web轻量级开发面试教程
我最近看到一本比较好的讲java web方面面试的书,java web轻量级开发面试教程. 其中不仅用案例和视频讲述了Spring MVC,Hibernate, ORM等方面的技巧,而且还实际讲到了面 ...
随机推荐
- Python得到两个时间段的每一天的列表
date_list = [] begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d") end_date = ...
- Python学习之类
class Person: def __init__(self, name): self.name = name def sayHi(self): print('Hello, my name is'+ ...
- Android构建boot.img(二):kernel的拷贝与打包
上文已经对boot.img其中组成部分之一ramdisk.img做了分析,boot.img另外一个重要的组成部分就是kernel了, 这里所说的kernel,可以只理解为位于out/target/pr ...
- UVa (二分) 11627 Slalom
题意: 有宽度相同的水平的n个旗门,水平(纵坐标严格递增)滑行的最大速度为Vh(水平速度可以任意调节).然后还有S双滑雪板,每双滑雪板的垂直速度一定. 然后求能通过的滑板鞋的最大速度. 分析: 显然, ...
- postgresql之数据字典
greenplum是基于postgresql开发的分布式数据库,里面大部分的数据字典是一样的.我们在维护gp的时候对gp的数据字典比较熟悉,特此分享给大家.在这里不会详细介绍每个字典的内容,只会介绍常 ...
- 封装sharedPreferences SettingsSPData
/*************************************************************************** * 封装sharedPreferences S ...
- Android内存控制小技巧-使用矢量图来节省你的内存并简化你的开发。
先上一个 位图和矢量图的 说明.http://zhidao.baidu.com/link?url=xwvs5CBzWeh15O3Ee4bICwCqg4PCQWwg5oZ0a6CVydbVZzufqrI ...
- mysql初识之数据文件及其他文件
在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式.表文件个数也会有所差异.mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd ...
- python定义影像投影
import os import arcgisscripting gp=arcgisscripting.create() coordsys=r"C:\Winx86\ArcGIS\Coordi ...
- ulimit 命令
用途:ulimit用于shell启动进程所占用的资源. 类别:shell内建命令 语法格式:ulimit [-acdfHlmnpsStvw] [size] 参数: -H 设置硬资源限制. -S 设置软 ...