<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:03:02 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[JAVA-4816] Improve performance of ObjectId hex string parsing</title>
                <link>https://jira.mongodb.org/browse/JAVA-4816</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;The built-in ObjectId parseHexString() implementation is somewhat slow, because it calls Integer.parseInt() 12 times. Replacing with hand-coded hex parsing achieves something like a 5x improvement.&lt;/p&gt;

&lt;p&gt;Performance test (ran on master and on branch on my M1 Mac):&lt;/p&gt;

&lt;p&gt;&#160; &#160; public static void main(String[] args) {&lt;br/&gt;
&#160; &#160; &#160; &#160; long startTime = System.currentTimeMillis();&lt;br/&gt;
&#160; &#160; &#160; &#160; for (int i = 10000000; i &amp;lt; 100000000; i++) &lt;/p&gt;
{
&#160; &#160; &#160; &#160; &#160; &#160; new ObjectId(&quot;1234567890abcdef&quot; + i);
&#160; &#160; &#160; &#160; }
&lt;p&gt;&#160; &#160; &#160; &#160; long endTime = System.currentTimeMillis();&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; System.out.println(&quot;Time elapsed: &quot; + (endTime - startTime));&lt;br/&gt;
&#160; &#160; }&lt;/p&gt;

&lt;p&gt;On master:&lt;/p&gt;

&lt;p&gt;Time elapsed: 19460&lt;/p&gt;

&lt;p&gt;On branch:&lt;/p&gt;

&lt;p&gt;Time elapsed: &#160;3617&lt;/p&gt;</description>
                <environment></environment>
        <key id="2192660">JAVA-4816</key>
            <summary>Improve performance of ObjectId hex string parsing</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="ian@charthop.com">Ian White</reporter>
                        <labels>
                    </labels>
                <created>Tue, 22 Nov 2022 23:25:40 +0000</created>
                <updated>Sat, 28 Oct 2023 11:20:32 +0000</updated>
                            <resolved>Tue, 13 Dec 2022 12:50:39 +0000</resolved>
                                                    <fixVersion>4.9.0</fixVersion>
                                    <component>BSON</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="5050722" author="xgen-internal-githook" created="Tue, 13 Dec 2022 12:50:21 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Ian White&apos;, &apos;email&apos;: &apos;ian@charthop.com&apos;, &apos;username&apos;: &apos;eonwhite&apos;}
&lt;p&gt;Message: Improve performance of ObjectId#parseHexString (#1034)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-4816&quot; title=&quot;Improve performance of ObjectId hex string parsing&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-4816&quot;&gt;&lt;del&gt;JAVA-4816&lt;/del&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Co-authored-by: Jeff Yemin &amp;lt;jeff.yemin@mongodb.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/cbb8d04bcc6b14d724f654f1264d481124522338&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/cbb8d04bcc6b14d724f654f1264d481124522338&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10257" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Documentation Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11861"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr3mmh:0400000946ij901b</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>