Java Web高性能开发(三)

今日要闻:

Clarifai:可识别视频中物体

最近几年,得益于深度学习技术的发展,谷歌Facebook等企业的研究人员在图形识别软件领域取得了重大突破。现在,一家名为Clarifai的创业公司则提供了一项新服务,利用深度学习技术来理解视频内容。

深度学习需要借助一个模拟“神经元”的网络来处理数据,并且利用实例数据对其进行训练。Clarifai的技术源自纽约大学的研究,该公司2013年在一项著名的图片内容识别软件竞赛中取得前五名。

今日英文:

http://docs.oracle.com/cd/E11882_01/java.112/e16548/jdbcvers.htm#JJDBC28111

SQLXML 类型(Sql:2003)

需要导入xdb.jarxmlparserv2.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 说,许多公司都有”思考周“的观点,在一周内进行头脑风暴活动。那不一定是在深夜,”如果一个公司雇佣了合格的员工,相信他们能有好主意,就应该给予他们空闲时间和自由度,让他们在公司需要探索的方面,想出一些了不起的东西”。

时间: 2024-10-09 10:47:46

Java Web高性能开发(三)的相关文章

Java Web高性能开发 - 前端高性能

作者:IBM developerWorks链接:https://www.ibm.com/developerworks/cn/java/j-lo-javawebhiperf1/著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 图片压缩 减少图片的大小,可以明显的提高性能,而对于已有图片,要想减少图片的大小,只能改变图片的格式,这里推荐的是 PNG8 的格式. 图像合并实现 CSS Sprites 把网页中一些背景图片整合到一张图片文件中,再利用 CSS 的"background

Java Web高性能开发(二)

今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买来的东西,我半价就入手了. 他忘了自己花了多少时间多少精力找到这个淘宝店,也忘了自己花了多少时间多少精力把这个淘宝店的评价看了个遍分析了个遍,更忘了自己花了多少时间多少精力学习分辨港版.美版.A货.B货.这些都是成本.当然,这不是问题,这么多时间和精力用在赚钱上也许赚不到五百块,两相比较,还是赚了.

Java Web项目开发到底需要掌握哪些技术?

目前, 国内外信息化建设已经进入基于Web应用为核心的阶段, Java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.概括一下,实施Java的WEB项目需要掌握的技术如下: lJava语言 l面向对象分析设计思想 l设计模式和框架结构 lXML语言 l网页脚本语言 l数据库 l应用服务器 l集成开发环境 下面我们具体地看每个技术. 1.Java语言 Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servle

数据库面试技巧,通过JDBC展示自己专业性,摘自java web轻量级开发面试教程

这篇文章是我之前写的博文 数据库方面的面试技巧,如何从建表方面展示自己能力 和 面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程是一个系列的,通过面试官的视角和大家分享在数据库方面的面试经验,这些内容都来摘自  java web轻量级开发面试教程. 之前的两篇文章点击量都还行,也感谢管理员放入首页,这鼓舞到了我,也让我更有信心和大家分享我的经验. 我们知道,最终我们是要通过jdbc来连接并访问数据库的,也就是说,最近面试官一定会通过JDBC方面的技能来考核候选人

(java web后端方向)如何让你的简历为你争取到更多的面试机会,内容来自java web轻量级开发面试教程

我们在做培训时,会发现一个不合理的情况,一些程序员能力不错,在公司里也是技术牛人,但发出去的简历往往会石沉大海,没有回复.对于刚毕业的大学生或工作年限在2年之内的程序员,这个情况会更严重. 这种情况下,其实不是你的能力有问题,而是简历筛选人(往往是人事或技术面试官)无法从简历上看出你很牛,或者即使能从简历上感觉到你能力很强,但会感觉到你的能力和公司的需求不匹配.不管是哪种情况,结果都一个,你甚至得不到技术面试的机会. 笔者在这里,将根据面试多个候选人(至今有100以上)的经验,来向大家展示准备简

java web轻量级开发面试教程读书笔记:建索引时我们需要权衡的因素

场景一,数据表规模不大,就几千行,即使不建索引,查询语句的返回时间也不长,这时建索引的意义就不大.当然,若就几千行,索引所占的空间也不多,所以这种情况下,顶多属于"性价比"不高. 场景二,某个商品表里有几百万条商品信息,同时每天会在一个时间点,往其中更新大概十万条左右的商品信息,现在用where语句查询特定商品时(比如where name = 'XXX')速度很慢.为了提升查询效率可以建索引,但当每天更新数据时,又会重建索引,这是要耗费时间的. 这时就需要综合考虑,甚至可以在更新前删除

Java web轻量级开发面试教程读书笔记:数据库方面,如何准备面试

如果在面试或与资深人事交流的过程中,你能有效合理地展示出本章所给出的一些知识点,那么对你的评价就会是"对数据库有深入了解",甚至能加上"有设计数据表的经验",即便你说有过3年商业项目数据库操作的经验,那么别人也能相信. 相反,如果一个工作经验满3年的程序员或许动手编程能力不差,但无法在交流沟通过程中证明这点,或者干脆不知道怎么证明,那么对他的评价往往可能是"数据库层面,有过商业项目的经验,但只会些基本的增删改查(顶多再加上会视图存储过程等技术),无法独立担

使用MyEclipse搭建java Web项目开发

转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成,只要在安装配置成功之后才可以进入下面的java Web项目开发环境的搭建. 1.安装工具 第一步,下载并安装JDK,到官网上下载安装即可,之后需要细心的配置环境变量,我给大家推荐百度文库的一篇文章,猛戳这里. 第二步,下载Tomcat,当然可以去Apache Tomcat的官网,同样,您可以移驾到

面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程

上星期写了一个篇文章,数据库方面的面试技巧,如何从建表方面展示自己能力,承蒙管理员抬举,放入首页,也承蒙各位厚爱,两天内收获了将近770个点击,也一度进入48小时热榜. 为了感谢管理员和大家的支持,再根据我的面试经验原创一篇关于索引方面如何推销自己的文章.这内容也来自我写的书 java web轻量级开发面试教程. 如果我们需要招个Java方面的高级程序员,一方面看年限(本科3年),具体到数据库方面的技能要求,包括如下三个方面: 第一,是否会基本的增删改查,存储过程等技能,是否会用些group b