H(a|e)llo Jochen,
thank you for your reply.
@POJO is a Groovy 4 only feature, so I spent several hours getting our
project to build under groovy-4.0.11, then started profiling with
different settings, with the following results:
1. The good news is, that we might have pinpointed the or at least one
of the major reasons for the 2-3x performance drop when switching
our project from Groovy 3 -> 4:
1. The TBKMS_Table ctor call takes about 2 to 4 times as long on
average when using groovy-4.0.11 out-of-the-box (i.e. indy),
compared to other Groovy varieties (see below).
2. https://issues.apache.org/jira/browse/GROOVY-10307
2. The not-so-good thing is, that alas the performance of non-indy
groovy-4.0.11 with @CompileStatic @POJO on all involved traits is
still a little bit slower than groovy-3.0.14 (default, i.e. non-indy)...
3. I have attached the performance measurements for different Groovy
versions / compiler settings
1. Average performance for calling the TBKMS_Table ctor ranges from
> 400ms for groovy-4.0.11 out-of-the-box to < 100ms for
groovy-3.0.14
2. The expected/required performance would be < 1ms
4. I also attached the decompiled ctor for the TBKMS_Table class, one
of the two Table classes that compete for the longest ctor execution
time (both all-in-all depend on about the same number of traits).
1. Regarding the trait classes: At the location corresponding to
the involved traits package path I could only see some very
small, trivial interface class files in IntelliJ...
Cheers,
mg
On 07/05/2023 12:40, Jochen Theodorou wrote:
On 07.05.23 00:56, MG wrote:
Hi guys,
we have (a bit of an urgent) performance problem: The SQL generation
part that is an elemental part of our framework has become too slow in
certain key cases in the most recent extension to our main web
application.
We have finally narrowed the cause down to what looks like the main
bottleneck, and to our surprise it is a very harmless looking ctor call
that every Table class uses to internally create references of itself:
Table(String name, String shortName, Table parentTable = null, boolean
isReference = false, Schema schema = null) {
super(name) // Base class just stores name in String field
this.parentTable = parentTable
this.shortName = shortName
this.isReferenceTable = isReference
this.schema = schema
this.originalTableField = parentTable?.originalTableField
}
The cost of the ctor should be something like:
cost for delegating this-call (1)
+ cost for super-call (2)
+ cost for initiating the trait helpers (3)
+ cost for setting fields (4)
[...]
The KMS, TBKMS, etc classes look harmless enough, and the only thing I
can see is, that it seems the performance degradation seems to be tied
to the number of traits the class depends on.
That speaks for (3) getting out of hand.
It could be the meta class generation... if you have one class and 5
traits, then you generate 1 meta class for the class itself and 1 for
each helper, that would mean then 6.
And that even though the helpers do not need meta classes in my opinion.
[...]
If any one has any suggestions how to speed up our scenario, that would
be appreciated. The code this applies to is a mix of predominantly
static & some dynamic Groovy...
If possible could you use @CompileStatic @POJO on the traits and see if
that improves things? This would reduce the number of generated meta
classes in the constructor at least. They might be still created of
course. So maybe it is no complete solution. But if you can put it on
even some of the traits the improvement should be noticeable. Then we
know for sure that this is the problem and discuss further steps.
Otherwise I would have to see the bytecode of the ctors of the trait
helpers and the table class to say more
bye Jochen
package entities.schema.tables.editor;
import entities.schema.tables.KM_Table;
import entities.schema.tables.TBKM_Table;
import entities.schema.tables.TB_Table;
import entities.schema.tables.shared.TbkmConnectionTable;
import entities.schema.tables.shared.TbkmConnectionTable.Trait.FieldHelper;
import entities.schema.tables.shared.TbkmConnectionTable.Trait.Helper;
import entities.schema.tables.shared.base.FlagsColumnsTrait;
import entities.schema.tables.shared.base.XyzColumnTrait;
import entities.schema.tables.shared.base.VisColumnTrait;
import groovyannotations.TkTableAnnotation;
import groovyschema.supplier.TableInstancesGroovyIdh;
import groovyschema.tables.EntityTable;
import groovysql.sql.annotations.ColumnAnnotation;
import groovysql.sql.annotations.TableIdAnnotation;
import groovysql.sql.column.Column;
import groovysql.sql.ref.TableRefColumn;
import groovysql.sql.schema.Schema;
import groovysql.sql.table.Table;
import groovysql.sql.types.SqlTypes;
import groovy.lang.GroovyObject;
import groovy.lang.MetaClass;
import groovy.transform.Generated;
import groovy.transform.Internal;
import java.beans.Transient;
import java.util.List;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
import org.codehaus.groovy.transform.trait.Traits.TraitBridge;
@TdTableAnnotation
@TableIdAnnotation(id = 123)
public class TBKMS_Table extends TkEditorSourceTable implements
TbkmConnectionTable, FieldHelper,
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.FieldHelper,
entities.schema.tables.shared.base.XyzColumnTrait.Trait.FieldHelper,
entities.schema.tables.shared.base.VisColumnTrait.Trait.FieldHelper {
private final Column TB_TID;
private final Column EXX_TB_ID;
private final Column EXX_KM_ID;
private final TableRefColumn<TB_Table>
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III;
private final TableRefColumn<KM_Table>
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III;
private final Column
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL;
private Column
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG;
private Column
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG;
private final Column
entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ;
private final Column
entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ;
@Generated
public TBKMS_Table(String param0, String param1, Table param2, boolean
param3, Schema param4) {
super((String)param0, (String)param1, (Table)param2, param3,
(Schema)param4);
Column var6 = this.colThis("TB_TID",
TableInstancesGroovyIdh.TABLE.getID());
this.TB_TID = var6;
Column var7 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
this.EXX_TB_ID = var7;
Column var8 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
this.EXX_KM_ID = var8;
TableRefColumn var9 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III
= var9;
TableRefColumn var10 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III
= var10;
Column var11 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL =
var11;
Helper.$init$(this);
Object var10000 = null;
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var12 =
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ =
var12;
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var13 =
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ =
var13;
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
}
@Generated
public TBKMS_Table(String param0, String param1, Table param2, boolean
param3) {
super((String)param0, (String)param1, (Table)param2, param3);
Column var5 = this.colThis("TB_TID",
TableInstancesGroovyIdh.TABLE.getID());
this.TB_TID = var5;
Column var6 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
this.EXX_TB_ID = var6;
Column var7 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
this.EXX_KM_ID = var7;
TableRefColumn var8 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III
= var8;
TableRefColumn var9 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III
= var9;
Column var10 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL =
var10;
Helper.$init$(this);
Object var10000 = null;
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var11 =
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ =
var11;
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var12 =
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ =
var12;
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
}
@Generated
public TBKMS_Table(String param0, String param1, Table param2) {
super((String)param0, (String)param1, (Table)param2);
Column var4 = this.colThis("TB_TID",
TableInstancesGroovyIdh.TABLE.getID());
this.TB_TID = var4;
Column var5 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
this.EXX_TB_ID = var5;
Column var6 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
this.EXX_KM_ID = var6;
TableRefColumn var7 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III
= var7;
TableRefColumn var8 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III
= var8;
Column var9 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL =
var9;
Helper.$init$(this);
Object var10000 = null;
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var10 =
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ =
var10;
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var11 =
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ =
var11;
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
}
@Generated
public TBKMS_Table(String param0, String param1) {
super((String)param0, (String)param1);
Column var3 = this.colThis("TB_TID",
TableInstancesGroovyIdh.TABLE.getID());
this.TB_TID = var3;
Column var4 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
this.EXX_TB_ID = var4;
Column var5 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
this.EXX_KM_ID = var5;
TableRefColumn var6 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III
= var6;
TableRefColumn var7 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III
= var7;
Column var8 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL =
var8;
Helper.$init$(this);
Object var10000 = null;
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var9 =
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ =
var9;
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var10 =
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ =
var10;
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
}
@Generated
public TBKMS_Table(String param0) {
super((String)param0);
Column var2 = this.colThis("TB_TID",
TableInstancesGroovyIdh.TABLE.getID());
this.TB_TID = var2;
Column var3 = this.colThis("EXX_TB_ID", SqlTypes.NUMBER(15));
this.EXX_TB_ID = var3;
Column var4 = this.colThis("EXX_KM_ID", SqlTypes.NUMBER(15));
this.EXX_KM_ID = var4;
TableRefColumn var5 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III
= var5;
TableRefColumn var6 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III
= var6;
Column var7 =
Helper.$init$entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL(this);
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL =
var7;
Helper.$init$(this);
Object var10000 = null;
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var8 =
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ(this);
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ =
var8;
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
Column var9 =
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ(this);
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ =
var9;
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$init$(this);
var10000 = null;
}
public static TBKMS_Table getTBKMS() {
return getIt();
}
public EntityTable getEntityTable() {
return TBKM_Table.getTBKM();
}
@ColumnAnnotation(
isColumnQ = false
)
public Column getObbEidFilterCol() {
return (Column)ScriptBytecodeAdapter.castToType((Object)null,
Column.class);
}
public TBKMS_Table reference() {
return (TBKMS_Table)ScriptBytecodeAdapter.castToType(super.reference(),
TBKMS_Table.class);
}
public List<String> getAlternateNames() {
return ScriptBytecodeAdapter.createList(new Object[]{"ABC"});
}
@Generated
private static final TBKMS_Table
entities_schema_tables_entities_vkt_editor_TBKMS_Table$TBKMS_TableHolder_it_initExpr()
{
return new TBKMS_Table("TBKMS");
}
@Generated
public static TBKMS_Table getIt() {
return
TBKMS_Table.TBKMS_TableHolder_it.pfaccess$0((TBKMS_Table.TBKMS_TableHolder_it)null);
}
@Generated
@TraitBridge(
traitClass = TbkmConnectionTable.class,
desc = "()Lgroovysql/sql/ref/TableRefColumn;"
)
public final TableRefColumn<TB_Table> getTB_EID_III() {
return Helper.getTB_EID_III(this);
}
@Generated
@TraitBridge(
traitClass = TbkmConnectionTable.class,
desc = "()Lgroovysql/sql/ref/TableRefColumn;"
)
public final TableRefColumn<KM_Table> getKM_EID_III() {
return Helper.getKM_EID_III(this);
}
@Generated
@TraitBridge(
traitClass = TbkmConnectionTable.class,
desc = "()Lgroovysql/sql/column/Column;"
)
public final Column getPROFIL() {
return Helper.getPROFIL(this);
}
static {
Helper.$static$init$(TBKMS_Table.class);
Object var10000 = null;
entities.schema.tables.shared.base.TkSharedColumnsTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
var10000 = null;
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
var10000 = null;
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
var10000 = null;
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.$static$init$(TBKMS_Table.class);
var10000 = null;
}
@Generated
public TableRefColumn<TB_Table>
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III$get()
{
return
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III;
}
@Generated
public TableRefColumn<KM_Table>
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III$get()
{
return
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL$get() {
return
this.entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL;
}
@Generated
public TableRefColumn<TB_Table>
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__TB_EID_III$set(TableRefColumn<TB_Table>
val) {
return null;
}
@Generated
public TableRefColumn<KM_Table>
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__KM_EID_III$set(TableRefColumn<KM_Table>
val) {
return null;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_TbkmConnectionTable__PROFIL$set(Column
val) {
return null;
}
@Generated
@TraitBridge(
traitClass = FlagsColumnsTrait.class,
desc = "()Lgroovysql/sql/column/Column;"
)
public Column getTAG() {
return
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.getTAG(this);
}
@Generated
@TraitBridge(
traitClass = FlagsColumnsTrait.class,
desc = "(Lgroovysql/sql/column/Column;)V"
)
public void setTAG(Column TAG) {
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.setTAG(this,
TAG);
Object var10000 = null;
}
@Generated
@TraitBridge(
traitClass = FlagsColumnsTrait.class,
desc = "()Lgroovysql/sql/column/Column;"
)
public Column getFL_TAG() {
return
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.getFL_TAG(this);
}
@Generated
@TraitBridge(
traitClass = FlagsColumnsTrait.class,
desc = "(Lgroovysql/sql/column/Column;)V"
)
public void setFL_TAG(Column FL_TAG) {
entities.schema.tables.shared.base.FlagsColumnsTrait.Trait.Helper.setFL_TAG(this,
FL_TAG);
Object var10000 = null;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG$get() {
return
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG$get()
{
return
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG$set(Column
val) {
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__TAG =
val;
return val;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG$set(Column
val) {
this.entities_schema_tables_entities_vkt_shared_base_FlagsColumnsTrait__FL_TAG
= val;
return val;
}
@Generated
@TraitBridge(
traitClass = XyzColumnTrait.class,
desc = "()Lgroovysql/sql/column/Column;"
)
public final Column getXYZQ() {
return
entities.schema.tables.shared.base.XyzColumnTrait.Trait.Helper.getXYZQ(this);
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ$get() {
return
this.entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_XyzColumnTrait__XYZQ$set(Column
val) {
return null;
}
@Generated
@TraitBridge(
traitClass = VisColumnTrait.class,
desc = "()Lgroovysql/sql/column/Column;"
)
public final Column getVISQ() {
return
entities.schema.tables.shared.base.VisColumnTrait.Trait.Helper.getVISQ(this);
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ$get() {
return
this.entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ;
}
@Generated
public Column
entities_schema_tables_entities_vkt_shared_base_VisColumnTrait__VISQ$set(Column
val) {
return null;
}
@Generated
public final Column getTB_TID() {
return this.TB_TID;
}
@Generated
public final Column getEXX_TB_ID() {
return this.EXX_TB_ID;
}
@Generated
public final Column getEXX_KM_ID() {
return this.EXX_KM_ID;
}
private static class TBKMS_TableHolder_it implements GroovyObject {
private static final TBKMS_Table INSTANCE;
@Generated
public TBKMS_TableHolder_it() {
MetaClass var1 = this.$getStaticMetaClass();
this.metaClass = var1;
}
@Generated
@Internal
@Transient
public MetaClass getMetaClass() {
MetaClass var10000 = this.metaClass;
if (var10000 != null) {
return var10000;
} else {
this.metaClass = this.$getStaticMetaClass();
return this.metaClass;
}
}
@Generated
@Internal
public void setMetaClass(MetaClass var1) {
this.metaClass = var1;
}
static {
TBKMS_Table var0 = TBKMS_Table.access$0((TBKMS_Table)null);
INSTANCE = var0;
}
}
}
kmQuery - groovy-4.0.11 (regular traits, invoke-dynamic)
[ZC, 0]
[KG, 0.6010638298]
[VE, 0.9479166667]
[TBK, 1.78125]
[PE, 4.0574712644]
[OX, 14.9972972973]
[LS, 18.4692307692]
[RA, 25.3125]
[US, 27.5806451613]
[PEOX, 126]
[TB, 155.4]
[KM, 180.4666666667]
[KMS, 259.6]
[TBKMS, 405.25]
[ZC, 0.25]
[KG, 0.8936170213]
[VE, 1.2453703704]
[TBK, 2.4375]
[PE, 4.8189655172]
[OX, 16.9824324324]
[LS, 20.6076923077]
[RA, 27.25]
[US, 32.0725806452]
[PEOX, 143.5]
[TB, 174.6]
[KM, 187.5333333333]
[KMS, 302]
[TBKMS, 433.1]
kmQuery - groovy-4.0.11 (mostly regular traits, non-invoke-dynamic)
[ZC, 0]
[VE, 0.1261574074]
[KG, 0.1436170213]
[PE, 0.5977011494]
[TBK, 0.8125]
[OX, 4.0581081081]
[US, 8.8790322581]
[LS, 10.5230769231]
[RA, 25.78125]
[PEOX, 52.46875]
[KM, 55.2333333333]
[TB, 64.2666666667]
[TBKMS, 124.85]
[KMS, 135.7]
kmQuery - groovy-4.0.11 (@POJO STC traits, non-invoke-dynamic)
[ZC, 0]
[VE, 0.0740740741]
[KG, 0.1382978723]
[PE, 0.6839080460]
[TBK, 0.84375]
[OX, 4.2743243243]
[US, 9.5161290323]
[LS, 11.3307692308]
[RA, 27.09375]
[PEOX, 55.671875]
[KM, 59.5666666667]
[TB, 70.0333333333]
[TBKMS, 127.45]
[KMS, 148.7]
[ZC, 0]
[VE, 0.1504629630]
[KG, 0.1702127660]
[TBK, 0.9375]
[PE, 1.4942528736]
[OX, 6.8472972973]
[LS, 7.8923076923]
[US, 9.5483870968]
[RA, 10.125]
[PEOX, 64.9375]
[TB, 71.7666666667]
[KM, 82.9666666667]
[KMS, 126.4]
[TBKMS, 174.1]
kmQuery - groovy-4.0.11 (literal @POJO STC traits, non-invoke-dynamic)
[ZC, 0]
[VE, 0.0844907407]
[KG, 0.1117021277]
[PE, 0.4339080460]
[TBK, 0.78125]
[OX, 3.6729729730]
[US, 7.9919354839]
[LS, 10.2230769231]
[RA, 26.5]
[PEOX, 49.6875]
[KM, 53.2]
[TB, 64.4666666667]
[TBKMS, 115.85]
[KMS, 124.5]
[ZC, 0]
[VE, 0.0821759259]
[KG, 0.1382978723]
[PE, 0.4741379310]
[TBK, 0.71875]
[OX, 3.8337837838]
[US, 8.3306451613]
[LS, 9.7230769231]
[RA, 23.34375]
[PEOX, 49.84375]
[KM, 54.1333333333]
[TB, 60.5666666667]
[TBKMS, 119.8]
[KMS, 132.65]
kmQuery - groovy-3.0.14 (regular traits, non-invoke-dynamic)
[ZC, 0]
[VE, 0.0451388889]
[KG, 0.1382978723]
[PE, 0.1839080460]
[TBK, 1.25]
[OX, 2.3202702703]
[US, 6.4677419355]
[LG, 7.6076923077]
[RA, 19.65625]
[PEOX, 33.203125]
[KM, 36.2333333333]
[TB, 48.7333333333]
[TBKMS, 90]
[KMS, 91.9]