做java的都喜欢eclipse的增量编译 习惯以后再来看C的编译, 觉得慢的不可思议. 希望CDT能彻底一些改变这个问题.
古董项目有个共同的特征, 就是makefile, 这个恐龙里面不但有makefile, 还有ant脚本, 还调用了多种语言写成的脚本...彪悍吧.
所以,每个新人都会情不自禁的用eclipse建立java project, 那要等到话儿都谢了.
不说编译, 从共享目录里面去refresh一下项目都要老半天.
在专用的solaris server上面编译, 大概两三个小时吧. 这里面很多可以改进的地方. but, not now. 先完成任务.
标准做法是建立一个没有编译器的java project, 然后经过漫长的refresh, 这个项目就有了, bin目录下面是solaris编译出来的类.
那么前辈们是怎样调试的呢? 嗯, makefile有个好处, 可以单独编译, 然后把编译后的classpath加入到调试机器的classpath前面, 重启server就该生效了. server加上远程调试选项, 从eclipse里面远程调试.
至少
看到问题没? 单独编译很快, 可是重启很慢, 有多慢呢? 当然要体现出大项目的特点, 慢, 至少几分钟. 所以如果调试一个代码, 可能改几次, unix下面编译, server restart, 客户端操作, 触发eclipse断点. 一上午没改多少代码, 就过去了. 特别是sun workstation, 一个cpu比server综合慢10倍.
这还好了, 以前的前辈们连远程调试都没得玩呢. 都靠log打印的.
慢, eclipse远程调试可以hotswap, 不需要重启的.
错, 因为只能在unix下面编译, eclipse不能自己编译, 所以hot-swap不生效. #$*^(@#
OK, 痛苦了两个月以后, 痛定思痛, 我们能做点什么呢? 而且要小心, 因为一个项目refresh一下都要僵死很久.
这个改进的契机是另外一个项目, 他们的项目之间有依赖问题, 过去别忙看了一下突然想起来最擅长的: 项目依赖!
但是, 项目不能自己编译. OK:
1. 还用原来不能自己编译的太监java项目. 这是base. (连增量编译都没有的java项目,bin下面已经有在unix下面编译好的类.)
2. 把要修改的代码单独checkout出来, 组织成迷你的java项目. 肯定编译不过
3. 迷你项目依赖编译base项目. 编译通过. 这是以前打补丁常玩的办法.
4. 迷你项目自动编译, 远程调试, 自动hotswap改动的代码.
后记:
1. 推广了这个项目组织形式以后, 生产效率大幅提高. 但是我的工资没有提高
2. hotswap不是万金油, 只能替换方法体.
3. 还能改进, 把base项目砍掉, 只依赖其编译生成的jar, 指定jar的source也可以. 但是有些东西编译后是看不到的. 根据情况取舍吧.
4. 有些第三方工具可以实现任意的hotswap, 但是碰到solaris都玩完.
分享到:
相关推荐
《编译原理(第2版)》适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。 1977年,AlfredV.Aho和JeffreyD.Ullman合作出版了《PrincipiesofCompiletDesign》,封面...
7. **编译与运行**:游戏源码可以使用Java的javac命令进行编译,生成.class文件,然后通过java命令运行。这对于初学者来说,是一个实际操作Java开发流程的好机会。 综上所述,《奔跑吧,小恐龙!》不仅是一个娱乐...
本书适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。 1977年,Alfred V.Aho和Jeffrey D.Ullman合作出版了《Principies of Compilet Design》,封面是一位...
1986年,原来的两位作者加上RaviSethi,升级了前一《编译原理(第2版)》,书名改为《compiIers:Principles,TechniquesandTools》,封面依然沿用骑士和恐龙,那恐龙是红色的,因此被称为龙书二或者红龙书。...
这个压缩包文件提供了高清的谷歌小恐龙素材,为开发者和设计者们提供了一站式的资源库,使得创建类似小游戏或与谷歌小恐龙相关的项目变得更为便捷。 首先,我们要了解“谷歌小恐龙”游戏的背景。这个游戏是谷歌...
"恐龙快跑"是学习和实践Pygame的好例子,它展示了如何使用Python来创建一个基本的2D游戏。通过分析和理解这个游戏的源代码,你可以深入学习Pygame的用法,进一步提升自己的游戏开发技能。无论是初学者还是有经验的...
2. 障碍物:同样,创建一个障碍物类,随机生成位置,检测与小恐龙的碰撞。 3. 用户输入:监听键盘事件,当用户按下空格键时,让小恐龙跳跃。 4. 渲染和碰撞检测:在每一帧中,更新并绘制所有游戏对象,检查小恐龙...
10. **测试与调试**: 游戏开发过程中,单元测试和集成测试是必不可少的,以确保代码的正确性和游戏的可玩性。 通过这个Java实现的谷歌小恐龙游戏,开发者可以学习到如何利用Java进行图形化编程,理解游戏开发的...
"谷歌小恐龙"是一款备受欢迎的小游戏,内置于谷歌Chrome浏览器中。当用户在无网络连接的情况下打开新标签页时,这款有趣的游戏就会自动显现。它以一只奔跑的恐龙为主题,玩家通过点击屏幕或按空格键使恐龙跳跃,避开...
从提供的文件名来看,我们可以推测这些图片可能分为两类:一类是以"玩家"(player.png)为主体的小恐龙,另一类可能是不同的龙形态,如"xianren1.png"和"xianren2_1.png"可能代表小恐龙的不同动作或表情,而...
《编译原理(第2版)》适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。 1977年,AlfredV.Aho和JeffreyD.Ullman合作出版了《PrincipiesofCompiletDesign》,封面...
《编译原理(第2版)》适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。 1977年,AlfredV.Aho和JeffreyD.Ullman合作出版了《PrincipiesofCompiletDesign》,封面...
4. **游戏逻辑**:小恐龙快跑的核心逻辑包括角色移动、跳跃、障碍物生成与移动、碰撞检测等。Python的面向对象编程特性使开发者可以创建类来表示游戏中的角色和物体,每个类都有自己的属性和方法,如Dinosaur类可能...
HTML负责构建游戏的基本结构,CSS则用于样式设计,让游戏看起来更吸引人,而JavaScript则用来实现游戏的动态行为,如小恐龙的跳跃、恐龙与障碍物的碰撞检测等。 对于"谷歌",作为全球知名的科技公司,其开发的...
2. **图形渲染**:恐龙和火焰的显示涉及图形界面编程。Windows GDI(Graphics Device Interface)或DirectX API可以用于绘制2D或3D图形,实现游戏场景的动态更新。 3. **窗口类与窗口实例**:每个窗口都有一个类,...
6. **LCD驱动**:通过SPI或I2C接口与LCD模块通信,显示游戏画面,需要编写LCD驱动代码。 7. **内存管理**:根据STM32的RAM和Flash资源,合理分配存储空间,管理游戏数据结构和程序代码。 【游戏开发知识点】: 1. *...
谷歌小恐龙是一款内置在Chrome浏览器中的经典休闲小游戏,每当网络中断时,用户可以在浏览器的地址栏输入"chrome://dino"来启动这个游戏。这款游戏的设计简单却极具趣味性,玩家需要控制一只小恐龙,通过跳跃避开...
任天堂64恐龙星球的WIP反编译任天堂64恐龙星球的WIP反编译,由Forest of Illusion在2021年2月20日发布。注意:要使用此存储库,您必须已经有一个ROM用于游戏。 - 警告! -由于尚未转储硬编码的指针,因此无法“移动...
【Java版奔跑吧小恐龙小游戏】是一款基于Java开发的语言,主要应用于后端平台,它将经典的小游戏"小恐龙奔跑"移植到了计算机环境中。这款小游戏以其趣味性和挑战性深受玩家喜爱,同时也为Java开发者提供了一个实践...
2. 恐龙化石的发现:恐龙化石是了解恐龙的重要途径,它们在全球各地被发掘,揭示了恐龙的生活习性、形态特征以及灭绝原因等信息。 3. 进化与飞行:一些恐龙,如翼龙,演化出了飞行的能力,这是生物进化史上的重大...