-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve performance #5539
Improve performance #5539
Conversation
Improve performance by: - Caching fields as KeywordList - Remove duplicate change listener - Remove preference access in loop
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks OK. I like Google Guava - therefore, I commented it at two places.
@@ -825,33 +830,46 @@ public String getUserComments() { | |||
} | |||
} | |||
|
|||
public KeywordList getFieldAsKeywords(Field field, Character keywordSeparator) { | |||
Optional<KeywordList> storedList = fieldsAsKeywords.get(field, keywordSeparator); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can't you use Google Guava's Cache? 😇 Maybe, with Eclipse Collections Twin
LoadingCache<Pair<Field, Character>, KeywordList> storedKeywordList = CacheBuilder.newBuilder()
.build(new CacheLoader<Pair<Field, Character>, KeywordList>() {
@Override
public String load(final Pair<Field, Character> pair) throws Exception {
return getField(pair.getOne().map(... pair.getTwo());
}
});
return storedKeywordList.get(Tuples.pair(field, keywordSeparator));
OK, invalidation is worse (as it is not possible to invalidate all pairs having the same first value (easily)).
storedKeywordList.invalidateAll();
(I now that Tuples.pair(...) might be slower than your approach. Howver, I would like that the cache can be tweaked ^^).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That looks complicated 😄 https://github.com/google/guava/wiki/CachesExplained#applicability has the nice explanation
Note: If you do not need the features of a Cache, ConcurrentHashMap is more memory-efficient -- but it is extremely difficult or impossible to duplicate most Cache features with any old ConcurrentMap.
I guess we do not need these cache features (but I've also never worked with Guave Caches...so I cannot appreciate them).
latexFreeFields.put(field, typeName); | ||
return Optional.of(typeName); | ||
return Optional.of(type.get().getDisplayName()); | ||
} else if (latexFreeFields.containsKey(field)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could also be a good place for Guava's Cache.
@tobiasdiez Wonderful! Let me know, when I can start testing this fix. |
176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 176997d
) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 176997d Co-authored-by: github actions <[email protected]>
1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 1b00ec0
) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 1b00ec0 Co-authored-by: github actions <[email protected]>
4703b5d [Frontiers in ...] Remove formatting for volume (#5580) 3a3eb0c Create journal-of-clinical-and-translational-science.csl (#5588) cf08af8 Create clinical-pulmonary-medicine.csl (#5589) 98985b1 Create cancer-drug-resistance.csl (#5590) 0af101d Create american-journal-of-sociology.csl (#5591) b24e1f5 Create san-francisco-estuary-and-watershed-science.csl (#5592) 6f9323c revise Manchester UP monograph style (note-bib) (#5587) e6f982b Delete harper-adams (#5585) 1eef78f Create international-journal-of-clinical-research.csl (#5584) f28865e OSCOLA.csl: Add publiser info to generic/working paper secondary sources (CSL type "article"). (#5541) 197ceb1 Create system-dynamics-review.csl (#5575) 1d33da2 Create microcirculation.csl (#5577) d06f625 Create iawa-journal.csl (#5576) 4705585 Update for corrections (#5578) c1c7852 Create praxis.csl (#5579) e012054 Create European Review of Agricultural Economics style (#5567) b2fa912 Create biomarkers.csl (#5582) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 4703b5d
* Squashed 'buildres/csl/csl-styles/' changes from ec4a4c0..4703b5d 4703b5d [Frontiers in ...] Remove formatting for volume (#5580) 3a3eb0c Create journal-of-clinical-and-translational-science.csl (#5588) cf08af8 Create clinical-pulmonary-medicine.csl (#5589) 98985b1 Create cancer-drug-resistance.csl (#5590) 0af101d Create american-journal-of-sociology.csl (#5591) b24e1f5 Create san-francisco-estuary-and-watershed-science.csl (#5592) 6f9323c revise Manchester UP monograph style (note-bib) (#5587) e6f982b Delete harper-adams (#5585) 1eef78f Create international-journal-of-clinical-research.csl (#5584) f28865e OSCOLA.csl: Add publiser info to generic/working paper secondary sources (CSL type "article"). (#5541) 197ceb1 Create system-dynamics-review.csl (#5575) 1d33da2 Create microcirculation.csl (#5577) d06f625 Create iawa-journal.csl (#5576) 4705585 Update for corrections (#5578) c1c7852 Create praxis.csl (#5579) e012054 Create European Review of Agricultural Economics style (#5567) b2fa912 Create biomarkers.csl (#5582) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 4703b5d * Squashed 'buildres/csl/csl-locales/' changes from ec6d62a9e7..7a507fc008 7a507fc008 Fix spelling of October in Thai locale git-subtree-dir: buildres/csl/csl-locales git-subtree-split: 7a507fc0084edea8376ee5345879ddc2c99829ba Co-authored-by: github actions <[email protected]>
2b37392 Create betriebswirtschaftliche-forschung-und-praxis.csl (#5609) a52989c Update universitat-zu-koln-seminar-fur-abwl-und-finanzierungslehre.csl (#5610) 47c21bf Add historioPLUS (#5611) baf11b4 Update urad-rs-za-makroekonomske-analize-in-razvoj.csl (#5607) 636affa Create pain-medicine.csl (#5606) 1d060f9 Update sist02.csl (#5568) 54e8904 Update ucl-university-college-apa.csl (#5597) 9c6308e Creation du style cahiers-du-journalisme.csl (#5595) 7dea54b Update universite-du-quebec-a-montreal.csl (#5596) b110d07 Update journal-of-paleontology.csl (#5594) 9cc3797 Add workaround for software style in ASA (sociology) (#5464) 459dfb7 Update american-journal-of-sociology.csl (#5604) f73d62f Create council-of-science-editors-brackets.csl (#5593) bacf673 Remove extra accent (#5598) 55e1d40 Update system-dynamics-review.csl (#5599) b8262e4 Update independent style for journal-of-cataract-and-refractive-surgery.csl (#5602) 04da306 Create quaderni-ministero-dei-beni-e-delle-attivita-culturali-e-del-t… (#5600) 8144588 Update journal-of-dental-research.csl (#5601) 4703b5d [Frontiers in ...] Remove formatting for volume (#5580) 3a3eb0c Create journal-of-clinical-and-translational-science.csl (#5588) cf08af8 Create clinical-pulmonary-medicine.csl (#5589) 98985b1 Create cancer-drug-resistance.csl (#5590) 0af101d Create american-journal-of-sociology.csl (#5591) b24e1f5 Create san-francisco-estuary-and-watershed-science.csl (#5592) 6f9323c revise Manchester UP monograph style (note-bib) (#5587) e6f982b Delete harper-adams (#5585) 1eef78f Create international-journal-of-clinical-research.csl (#5584) f28865e OSCOLA.csl: Add publiser info to generic/working paper secondary sources (CSL type "article"). (#5541) 197ceb1 Create system-dynamics-review.csl (#5575) 1d33da2 Create microcirculation.csl (#5577) d06f625 Create iawa-journal.csl (#5576) 4705585 Update for corrections (#5578) c1c7852 Create praxis.csl (#5579) e012054 Create European Review of Agricultural Economics style (#5567) b2fa912 Create biomarkers.csl (#5582) 1b00ec0 Create journal-of-international-studies.csl (#5574) 79a5d9c Switch MLA to 9th edition (#5561) 011fef3 Update for corrections (#5573) ff5490c Create zeitschrift-fur-geschichtsdidaktik.csl (#5569) 9093f2f Create etri-journal.csl (#5570) c9ba757 Create radiation-protection-dosimetry.csl (#5571) 60632bc Create horttechnology.csl (#5572) e63820b Add a new journal (magnetic resonance in medical sciences) (#5542) b656885 Create zeitschrift-fur-papyrologie-und-epigraphik.csl (#5548) 25e1eef Update technische-universitat-dresden-linguistik.csl (#5563) c0c0da4 Create the-american-journal-of-dermatopathology.csl (#5564) 63f7db9 Update journal-of-the-american-association-of-laboratory-animal-scien… (#5566) ba64225 Update institut-français-darcheologie-orientale-en.csl (#5553) 32e9031 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes-en.csl (#5551) 23e2cf5 Create institut-francais-darcheologie-orientale-domaine-des-etudes-arabes.csl (#5550) 3e1a3f3 Update institut-français-darcheologie-orientale.csl (#5552) 176997d Update veterinary-pathology.csl (#5554) ee035c1 Update mycologia.csl (#5555) eb4b3a6 Create international-journal-of-automotive-technology.csl (#5557) 3c4e727 Bump addressable from 2.7.0 to 2.8.0 (#5558) ccb81c8 Create szociologiai-szemle.csl (#5547) ed9d740 Update brain.csl to ama.csl dependent (#5546) ab499f2 Create iran-manual-style (#5350) 6e2b13c Update and rename dependent/estuaries-and-coasts.csl to estuaries-and-coasts.csl (#5534) 8441ff9 Create fachhochschule-suedwestfalen.csl (#5459) 8439cf4 Create freie-hochschule-stuttgart.csl (#5466) 076c513 Update midwestern-baptist-theological-seminary.csl (#5420) 350b900 Update veterinary-pathology.csl (#5543) 06261c0 Create United States International Trade Commission.csl (#5508) 7ae505d Add support for blog posts (CSL: post-weblog). (#5536) 93c97ea Update tud bwl marketing style (#5538) 4308791 Create the-chinese-journal-of-international-politics.csl (#5537) 09f3362 Add hanging-indents to infoclio.ch styles (#5540) d4dc679 Further improvements to norsk-henvisningsstandad-for-rettsvitenskapelige-tekster.csl (#5539) git-subtree-dir: buildres/csl/csl-styles git-subtree-split: 2b37392
Improve performance by:
With these changes, the mega huge library of @AEgit works without too much delays (the initial loading of the database is a bit slow but still ok). Thus, this PR is a potential fix for #4430 and for #5071.