我有一个非常简单的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个标签库导致页面加载需要2秒钟。服务调用的开销如此之高似乎是不对的...是吗?我什至会去调试呢?

最佳答案

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

10-06 05:43