从TagLib开销的Grails服务调用

时间:2013-07-23 21:42:14

标签: grails service taglib overhead method-call

我有一个非常简单的taglib和服务:

class TestTagLib {
    FooService fooService

    static namespace = "bar"

    def test = {
        out << "text"
    }
}

class FooService {
    //This is an empty method that does absolutely nothing
    void foo() { }
}

如果我在页面上重复此taglib 20次,它会立即执行。但现在如果打电话给那个服务:

...

fooService.foo()
out << "test"

...

突然间,这20个taglib会导致页面加载2秒钟。这似乎是正确的,服务调用的开销会如此之高......或者是它?我怎么会去调试呢?

1 个答案:

答案 0 :(得分:3)

默认情况下,服务方法是事务性的。因此,对于fooService.foo()的每次调用,您都会获得完整的数据库事务创建和提交的开销。