写点什么

视频:Bruce Johnson 谈 Google Web Toolkit

  • 2008-03-06
  • 本文字数:712 字

    阅读完需:约 2 分钟

Google Web Toolkit (GWT) 的技术领导 Bruce Johnson 谈论了关于 GWT 的整体设计,GWT 如何将 Java 转换成 Javascript,与 GWT 相关的社团, GWT 1.4 版本中的新性能,以及 GWT 背后的哲学等话题。

我猜想人们的第一印象也许会是:“这是个某种意义上的翻译器”。在看到表层之下它究竟如何工作以后,他们会发现这样的印象就有点小觑了这项技术。他们设想我们只是以某种方式盲目地将一个特定的 Java 结构翻译成 JavaScript,以致于会产生冗余代码等一些问题。实际上,我们采用一种更计算机科学、更强有力的方式,那就是,我们将所有的 Java 源码聚合做语法解析,在此基础上再做优化处理。我们有目的地禁止反射机制和动态类加载。这样做的好处在于,在知道所有源码都可以通过编译器进行分析的前提下,你可以对程序作整体优化。反射机制会影响完全静态分析的实现,因为在运行时之前,你永远都没有办法知道会发生什么。但如果你剃掉了这个因素,你可以编译一个巨大的 Java 源码库,并且如果你将整个源码库作为一个整体编译,你甚至可以分析每一处调用,每一个方法的具体实现。你可以鉴别出那些看似多态性实际上却不是的部分,我们将它们称为“type tightening”。一旦作了 type tightening,其实就已经消除了多态机制,并且一旦重写调用点并将多态分派翻译至静态分派,你就可以内联源码,这样做允许你迭代另外的优化处理。所以说它是真真实实的编译器,我刚才提到的优化实在只是冰山一角,在未来我们将可以做更多更酷的优化。GWT 使用者得到的好处是,他们所需要做的只是升级 GWT 版本,重新编译而已,他们将在文件大小或速度或两者同时获得巨益。比如在即将发布的 GWT1.4 中,一个简单的重编译可以将文件大小减小 20% 并能够更快地启动。

2008-03-06 10:01907
用户头像

发布了 71 篇内容, 共 22.2 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

set -euo pipefail

Joseph295

可以显著提升脚本的健壮性和效率

Joseph295

领航智能运维新时代!嘉为蓝鲸与三大客户联合斩获央国企数智化转型案例殊荣

嘉为蓝鲸

智能运维 数智化转型

嘉为蓝鲸 CCI 持续集成平台:K8s 集群集成优化容器构建体验

嘉为蓝鲸

DevOps 智能运维 k8s集群

SyncMate for mac(数据同步软件)

Geek贝

Community Over Code Asia 2025DataOps专题:SeaTunnel社区出品并将带来多个分享!

白鲸开源

开源 技术 数据集成 Apache SeaTunnel CommunityOverCode

ZFile+内网穿透工具,无需NAS、无需公网IP搭建私有网盘/私有云

贝锐

内网穿透 NAS

京东币链科技严正声明:澄清稳定币及合作虚假信息,暂未设立相关社区

TechubNews

打造鸿蒙系统中最好用的加载动画和提示弹窗

幽蓝计划

harmony HarmonyOS NEXT

Go 框架选型指南:为什么我们团队最终选择了它?

vison

Go gRPC Backend Developer gin

中石大开展AI教育实践,打造大数据实践教学平台,清华领衔发布相关白皮书

ModelWhale

清华大学 中国石油大学 AI教育实践

BOE(京东方)携手合作伙伴定义下一代电竞显示趋势 借势核聚变嘉年华构建产业生态闭环

爱极客侠

MaxCompute x 聚水潭:基于近实时数仓解决方案构建统一增全量一体化数据链路

阿里云大数据AI技术

人工智能 数据挖掘 数据库 数据分析 数据处理

淘宝API系列:淘宝商品评论API接口详解

tbapi

淘宝API 天猫API 淘宝商品评论API 天猫商品评论API

灵活适配团队需求:CFlow 价值流模板高效管理研发全流程

嘉为蓝鲸

DevOps 智能运维 CFlow

腾讯云自研企业级操作系统TencentOS Server,助力央国企加速自主创新

极客天地

一次线上生产库的全流程切换完整方案

京东科技开发者

高性能缓存设计:如何解决缓存伪共享问题

京东科技开发者

Iceberg在图灵落地应用

百度Geek说

数据可视化:5 分钟读懂其核心价值与技术实践

镜舟科技

数据可视化 商业智能 运维监控 StarRocks 跨部门协作

本地部署Jupyter,没有公网IP如何用内网穿透工具实现远程访问?

贝锐

机器学习 内网穿透 jupyter jupyterlab

从数据到决策:CMDB消费在故障预警与根因分析中的实践

嘉为蓝鲸

AIOPS CMDB 智能运维

缓存之美:Guava Cache 相比于 Caffeine 差在哪里?

京东科技开发者

ETLCloud CDC中如何监听多表?

RestCloud

数据库 数据处理 ETL CDC 数据集成工具

Python搭建HTTP服务如何快速远程访问?内网穿透工具一招搞定!

贝锐

Python HTTP 内网穿透

Gartner推荐的容器监控系统管理实践——嘉为蓝鲸监控中心

嘉为蓝鲸

AIOPS Gartner 智能运维 可观测

手滑救星!通知中心一秒即达,这次真的“滑”得漂亮!

HarmonyOS SDK

harmoyos

华为JDC登场!观测云带来下一代监控观测平台的AI实战解法

观测云

人工智能

实战拆解:阿里云 ESA 重构金融行业的安全与速度

阿里云CloudImagine

云计算 最佳实践 边缘计算 安全防护 ESA

让高端装备“先跑起来”:虚拟仿真验证平台重塑研制流程

DevOps和数字孪生

高端装备

Nexpose 8.12.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

视频:Bruce Johnson谈Google Web Toolkit_Java_Ryan Slobojan_InfoQ精选文章