[ https://issues.apache.org/jira/browse/SOLR-14013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16989121#comment-16989121 ]
Yonik Seeley commented on SOLR-14013: ------------------------------------- I did some digging... the current code is certainly more complex than it used to be. So for a multi-valued field, the values internally are now IndexableField (for each value) For each of those values, we call JavaBinCodec.writeVal which tries writeKnownTypes which tests if it's a member of ~10 primitive types via instanceof failing, then tests against 19 other types failing, falls back to object resolver which tries against 4 other types, finally matching it up to IndexableField the schema is used to look up the SchemaField based on name (2 more hash lookups) then we call DocStreamer.getValue(), which does another hash lookup based on the .getClass() and then calls FieldType.toObject() which calls toExternal() which finally calls stringValue() on the IndexableField and now that we have our object, JavaBinCodec can try writeKnownTypes() again And this is now the common case! > javabin performance regressions > ------------------------------- > > Key: SOLR-14013 > URL: https://issues.apache.org/jira/browse/SOLR-14013 > Project: Solr > Issue Type: Bug > Security Level: Public(Default Security Level. Issues are Public) > Affects Versions: 7.7 > Reporter: Yonik Seeley > Assignee: Yonik Seeley > Priority: Major > Attachments: test.json > > > As noted by [~rrockenbaugh] in SOLR-13963, javabin also recently became > orders of magnitude slower in certain cases since v7.7. The cases identified > so far include large numbers of values in a field. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org