2007-08-10

Scala 用函数式编程的方法调用db4o

关键字: scala db4o java
db4o 是一个开源的纯面向对象数据库,同时支持Java和dotNet。使用db4o可以用更加面向对象的方式存储数据,比JPA等通过ORM来协调数据库和对象之间的方案来的更为自然。 那么用函数式编程的眼光来看,应该如何使用db4o这样的库呢?首先我们来看一个db4o的包装类 xml 代码 package plan.util;       import com.db4o.query.Query       abstract  ...
2007-08-10

用gdb调试python程序

关键字: python gdb debug
最近遇到情况,一堆python进程中不定期的有一个内存会突然暴涨。由于重现几率非常低,而且无法分析原因,只好上gdb调试了。 中间走了点弯路,python源代码自带了gdb的宏,但是pystack和pyo基本不能用。最后的办法就是当出现问题的时候,使用gdb attach到python程序上,然后在堆栈中找到PyFrameObject对象, 从而定位到出问题的python函数 函数名 *(char*)&(((PyStringObject*)f->f_code->co_name)->ob_sval) 文件名 *(char*)&(((PyStringObj ...
偶们的网站是基于Django开发的,部署在lighttpd + fastcgi模式,最近遇到一个诡异的问题,不定期有一个或几个进程内存突然飙升至几百兆濒临崩溃。想了很多办法调试 1、gdb动态attach上去,结果python2.5的gdbinit文件的宏似乎不起作用 2、试图使用valgrind未果 3、在python上加signal handler,但是出错时无法响应handler函数 最后只好临时增加一个脚本,检测内存过高的python进程并且直接kill之,算是个临时方案吧 sh 代码 ps --no-headers -A& ...
  • 22:23
  • 浏览 (453)
  • 评论 (0)
2007-08-02

在scala里调用Hibernate JPA

关键字: scala hibernate java jpa
虽然scala里也能直接使用hibernate逆向工程生成的entity文件,但是使用scala可以大大减少代码量。 pojo在java中的定义如下 java 代码 @Entity   @Table(name = "mytable", catalog = "mydb")    public class MyTable implements java.io.Serializabl ...
最近需要把hibernate reverse enginering生成的java entity代码转换为scala的(虽然scala能够直接调用java的代码)。Scala的语法虽然和java很相近,但是手工改起来还是很麻烦。 先是考察了antlr,不过由于hibernate生成的文件格式十分工整,用antlr似乎有点牛刀杀鸡的嫌疑。看了python antlr的文档,发现antlr3的语法变得厉害,而且对ast解析的tree parser也很复杂,不像是短时间内能搞定的,于是决定放弃lexer,裸写正则表达式处理,主要牵涉到annotation、构造函数以及函数定义的处理,大约2个多小时完 ...
fakechris
搜索本博客
博客分类
存档
最新评论