<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Macro optimization in Knowledge Management</title>
    <link>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143515#M1427</link>
    <description>&lt;P&gt;4 passes to &lt;CODE&gt;substr&lt;/CODE&gt; vs. 1 pass to &lt;CODE&gt;rex&lt;/CODE&gt; in mine (should be 4x faster)&lt;/P&gt;</description>
    <pubDate>Tue, 23 Oct 2018 15:29:34 GMT</pubDate>
    <dc:creator>woodcock</dc:creator>
    <dc:date>2018-10-23T15:29:34Z</dc:date>
    <item>
      <title>Macro optimization</title>
      <link>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143511#M1423</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;I've created a macro to convert IPv6 (IP field) to IPv4 connotation (Ex: &lt;CODE&gt;0000000000000000000000FFFF0a0a0a0a &amp;gt; 10.10.10.10&lt;/CODE&gt;)&lt;/P&gt;

&lt;P&gt;Is that:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;| eval a=tonumber(substr(IP,25,2))
| eval a=tonumber(substr(IP,27,2))
| eval a=tonumber(substr(IP,29,2))
| eval a=tonumber(substr(IP,31,2))
| IP = a+"."+b+"."+c+"."+d
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;Someone know another method more efficient to do it optimizing the macro execution?&lt;/P&gt;</description>
      <pubDate>Sat, 27 Sep 2014 19:36:46 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143511#M1423</guid>
      <dc:creator>chlima</dc:creator>
      <dc:date>2014-09-27T19:36:46Z</dc:date>
    </item>
    <item>
      <title>Re: Macro optimization</title>
      <link>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143512#M1424</link>
      <description>&lt;P&gt;Why not&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;IP = tonumber(substr(IP,25,2),16) . "." . tonumber(substr(IP,27,2),16) . "." . tonumber(substr(IP,29,2),16) . "." . tonumber(substr(IP,31,2),16)
&lt;/CODE&gt;&lt;/PRE&gt;

&lt;P&gt;although I have no idea if that will actually be faster. It will work, because you have to specify the "16" to get it to convert from hex.&lt;/P&gt;

&lt;P&gt;(edited to fix the problem mentioned in the comments - replaced "+" with ".", which is concatenation)&lt;/P&gt;</description>
      <pubDate>Sat, 27 Sep 2014 19:58:52 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143512#M1424</guid>
      <dc:creator>lguinn2</dc:creator>
      <dc:date>2014-09-27T19:58:52Z</dc:date>
    </item>
    <item>
      <title>Re: Macro optimization</title>
      <link>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143513#M1425</link>
      <description>&lt;P&gt;Thanks for the answer lguinn, but it's returning an error.&lt;/P&gt;

&lt;P&gt;Error in 'eval' command: Typechecking failed. '+' only takes two strings or two numbers.&lt;/P&gt;

&lt;P&gt;So it that i've defined four variables (a,b,c,d).&lt;/P&gt;</description>
      <pubDate>Sat, 27 Sep 2014 20:05:37 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143513#M1425</guid>
      <dc:creator>chlima</dc:creator>
      <dc:date>2014-09-27T20:05:37Z</dc:date>
    </item>
    <item>
      <title>Re: Macro optimization</title>
      <link>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143514#M1426</link>
      <description>&lt;P&gt;You can swap 4 &lt;CODE&gt;substr&lt;/CODE&gt; commands with  a single &lt;CODE&gt;rex&lt;/CODE&gt; command and that should be very much quicker like this:&lt;/P&gt;

&lt;PRE&gt;&lt;CODE&gt;| rex field=32BitIP "(?i)(?&amp;lt;JuNkT3Mp_1&amp;gt;[0-9A-F]{2})(?&amp;lt;JuNkT3Mp_2&amp;gt;[0-9A-F]{2})(?&amp;lt;JuNkT3Mp_3&amp;gt;[0-9A-F]{2})(?&amp;lt;JuNkT3Mp_4&amp;gt;[0-9A-F]{2})"
| eval IP = tostring(tonumber(JuNkT3Mp_1,16)) . "."
          . tostring(tonumber(JuNkT3Mp_2,16)) . "." 
          . tostring(tonumber(JuNkT3Mp_3,16)) . "."
          . tostring(tonumber(JuNkT3Mp_4,16))
| fields - JuNkT3Mp*
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 29 Jun 2015 04:13:32 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143514#M1426</guid>
      <dc:creator>woodcock</dc:creator>
      <dc:date>2015-06-29T04:13:32Z</dc:date>
    </item>
    <item>
      <title>Re: Macro optimization</title>
      <link>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143515#M1427</link>
      <description>&lt;P&gt;4 passes to &lt;CODE&gt;substr&lt;/CODE&gt; vs. 1 pass to &lt;CODE&gt;rex&lt;/CODE&gt; in mine (should be 4x faster)&lt;/P&gt;</description>
      <pubDate>Tue, 23 Oct 2018 15:29:34 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Knowledge-Management/Macro-optimization/m-p/143515#M1427</guid>
      <dc:creator>woodcock</dc:creator>
      <dc:date>2018-10-23T15:29:34Z</dc:date>
    </item>
  </channel>
</rss>

