[ https://issues.apache.org/jira/browse/SOLR-743?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12627684#action_12627684 ]
Yonik Seeley commented on SOLR-743: ----------------------------------- bq. Any chance on sharing the test code used for that ? I checked it in for future reference.... it's commented out in BasicFunctionalityTest. {code} public void testFieldPerf() { IndexSchema schema = h.getCore().getSchema(); SchemaField[] fields = schema.getDynamicFieldPrototypes(); boolean createNew = false; long start = System.currentTimeMillis(); int ret = 0; for (int i=0; i<10000000; i++) { for (SchemaField f : fields) { if (createNew) f = new SchemaField(f, "fakename"); if (f.indexed()) ret += 1; if (f.isCompressed()) ret += 2; if (f.isRequired()) ret += 3; if (f.multiValued()) ret += 4; if (f.omitNorms()) ret += 5; if (f.sortMissingFirst()) ret += 6; if (f.sortMissingLast())ret += 7; if (f.stored()) ret += 8; if (f.storeTermOffsets()) ret += 9; if (f.storeTermPositions()) ret += 10; if (f.storeTermVector()) ret += 11; } } long end = System.currentTimeMillis(); System.out.println("ret=" + ret + " time="+ (end-start)); {code} A native bitwise-and + check for non-zero is a single cycle instruction (TEST in x86). Consider everything else that needs to be done for EnumSet.contains() - possible null check on the EnumSet instance, method call, then null check on the param - getClass() and compare to check to see that the enum being checked for is of the right class (COLOR and not SUIT, etc) - cast to Enum type, get the ordinal value, do a shift by that value, then do the bitwise-and. > Update the bitset usage in Schema to enums > ------------------------------------------ > > Key: SOLR-743 > URL: https://issues.apache.org/jira/browse/SOLR-743 > Project: Solr > Issue Type: Improvement > Reporter: Mark Miller > Priority: Minor > Fix For: 1.4 > > Attachments: SOLR-743.patch, SOLR-743.patch > > > For all of the reasons given by smarter people than I (specifically, > Effective Java), and because its just easier to follow. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.