Experimental: cache the results of convertsTo/coerceTo queries.

The cache is repository-local and is invalidated on every command in that repository.
This commit is contained in:
Fedor Isakov 2019-10-11 18:10:33 +02:00
parent 0b037d9702
commit 6372f5a4a4
5 changed files with 3229 additions and 1552 deletions

View File

@ -509,11 +509,11 @@
<node concept="3cpWsn" id="6QH_LDtdTgs" role="3cpWs9">
<property role="TrG5h" value="tc" />
<node concept="3uibUv" id="6QH_LDtdTgp" role="1tU5fm">
<ref role="3uigEE" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="3uigEE" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
</node>
<node concept="2YIFZM" id="6$gg4k_t5t5" role="33vP2m">
<ref role="37wK5l" to="tj24:4Z$O9mrQIG1" resolve="get" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="37vLTw" id="14$_tTxzVwH" role="37wK5m">
<ref role="3cqZAo" node="14$_tTxzTDw" resolve="modelRepo" />
</node>
@ -757,7 +757,7 @@
<node concept="3clFbF" id="14$_tTxAMey" role="3cqZAp">
<node concept="2YIFZM" id="6$gg4k_t5t7" role="3clFbG">
<ref role="37wK5l" to="tj24:14$_tTxAmT8" resolve="dispose" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="37vLTw" id="14$_tTxAP4p" role="37wK5m">
<ref role="3cqZAo" node="14$_tTxzTDw" resolve="modelRepo" />
</node>
@ -1623,7 +1623,7 @@
<node concept="3clFbF" id="14$_tTxAR_w" role="3cqZAp">
<node concept="2YIFZM" id="6$gg4k_t5t8" role="3clFbG">
<ref role="37wK5l" to="tj24:14$_tTxAmT8" resolve="dispose" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="37vLTw" id="14$_tTxAR_y" role="37wK5m">
<ref role="3cqZAo" node="14$_tTxzzxH" resolve="modelRepo" />
</node>
@ -1803,7 +1803,7 @@
<node concept="3clFbF" id="14$_tTxAQ_B" role="3cqZAp">
<node concept="2YIFZM" id="6$gg4k_t5t9" role="3clFbG">
<ref role="37wK5l" to="tj24:14$_tTxAmT8" resolve="dispose" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="37vLTw" id="14$_tTxAQ_D" role="37wK5m">
<ref role="3cqZAo" node="14$_tTxz_CG" resolve="modelRepo" />
</node>
@ -2024,7 +2024,7 @@
<node concept="3clFbF" id="3IIf9OA4zNv" role="3cqZAp">
<node concept="2YIFZM" id="6$gg4k_t5ta" role="3clFbG">
<ref role="37wK5l" to="tj24:14$_tTxAmT8" resolve="dispose" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="37vLTw" id="3IIf9OA4zNx" role="37wK5m">
<ref role="3cqZAo" node="3IIf9OA4zMN" resolve="modelRepo" />
</node>
@ -2460,7 +2460,7 @@
<node concept="3clFbF" id="3KwBCAABxsP" role="3cqZAp">
<node concept="2YIFZM" id="6$gg4k_t5tb" role="3clFbG">
<ref role="37wK5l" to="tj24:14$_tTxAmT8" resolve="dispose" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="37vLTw" id="3KwBCAABxsR" role="37wK5m">
<ref role="3cqZAo" node="3KwBCAABwVU" resolve="modelRepo" />
</node>

View File

@ -2573,7 +2573,7 @@
</node>
</node>
<node concept="liA8E" id="2cnGCY$rT84" role="2OqNvi">
<ref role="37wK5l" to="tj24:3IIf9O_tkwF" resolve="calcTypeOf" />
<ref role="37wK5l" to="tj24:3IIf9O_tkwF" resolve="getTypeOf" />
<node concept="2OqwBi" id="2cnGCY$rUzz" role="37wK5m">
<node concept="37vLTw" id="2cnGCY$rTTO" role="2Oq$k0">
<ref role="3cqZAo" node="6hqFpWnfpcc" resolve="nodes" />

View File

@ -360,7 +360,7 @@
<node concept="3clFbF" id="443LGHBoGH8" role="3cqZAp">
<node concept="2YIFZM" id="6$gg4k_t5t4" role="3clFbG">
<ref role="37wK5l" to="tj24:4Z$O9mrQIG1" resolve="get" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="2OqwBi" id="443LGHBoGJY" role="37wK5m">
<node concept="1KvdUw" id="443LGHBoGJZ" role="2Oq$k0" />
<node concept="liA8E" id="443LGHBoGK0" role="2OqNvi">
@ -376,7 +376,7 @@
<node concept="3clFbF" id="443LGHBoGNh" role="3cqZAp">
<node concept="2YIFZM" id="6$gg4k_t5t6" role="3clFbG">
<ref role="37wK5l" to="tj24:14$_tTxAmT8" resolve="dispose" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="2OqwBi" id="443LGHBoGQ$" role="37wK5m">
<node concept="1KvdUw" id="443LGHBoGQ_" role="2Oq$k0" />
<node concept="liA8E" id="443LGHBoGQA" role="2OqNvi">
@ -1734,7 +1734,7 @@
</node>
</node>
<node concept="liA8E" id="2qsG4AwK3fL" role="2OqNvi">
<ref role="37wK5l" to="tj24:3IIf9O_tkwF" resolve="calcTypeOf" />
<ref role="37wK5l" to="tj24:3IIf9O_tkwF" resolve="getTypeOf" />
<node concept="37vLTw" id="2qsG4AwK3fM" role="37wK5m">
<ref role="3cqZAo" node="siuT5mmA0c" resolve="node" />
</node>
@ -1921,7 +1921,7 @@
</node>
</node>
<node concept="liA8E" id="2qsG4AwKAu8" role="2OqNvi">
<ref role="37wK5l" to="tj24:3IIf9OAgpFT" resolve="calcConverts" />
<ref role="37wK5l" to="tj24:3IIf9OAgpFT" resolve="getConvertsTo" />
<node concept="37vLTw" id="2qsG4AwKEfL" role="37wK5m">
<ref role="3cqZAo" node="siuT5mmA0n" resolve="type" />
</node>
@ -2123,7 +2123,7 @@
</node>
</node>
<node concept="liA8E" id="2qsG4AwKIeS" role="2OqNvi">
<ref role="37wK5l" to="tj24:7Bx7XgEiqaI" resolve="calcCoerce" />
<ref role="37wK5l" to="tj24:7Bx7XgEiqaI" resolve="getCoerceTo" />
<node concept="37vLTw" id="2qsG4AwKIeT" role="37wK5m">
<ref role="3cqZAo" node="siuT5mmA0$" resolve="type" />
</node>

View File

@ -8205,7 +8205,7 @@
<node concept="3clFbF" id="4pwDyRC1qWl" role="3cqZAp">
<node concept="2YIFZM" id="4pwDyRC1qWm" role="3clFbG">
<ref role="37wK5l" to="tj24:14$_tTxAmT8" resolve="dispose" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypesIndexCache" />
<ref role="1Pybhc" to="tj24:4Z$O9mrQIzY" resolve="TypecheckingCache" />
<node concept="37vLTw" id="4pwDyRC1qWn" role="37wK5m">
<ref role="3cqZAo" node="4pwDyRC1qV_" resolve="modelRepo" />
</node>