cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
hogi
Level XI

Tips and Tricks - best practice with JMP/JSL

There is a wonderful blog post by @Craige_Hales : How Do You Draw a Circle? 

It illustrates very nicely that there are multiple solutions to every problem - with different levels of how well the goal was achieved.

 

And often there is not the ONE solution with maximum points in: 

 

  • goal was met
  • length of code
  • speed (to write the code)
  • speed (to execute the code)
  • complexity (to understand the code)
  • complexity ( to remember the code)

If you have to apply the same formula to millions of rows of thousands of columns, you will focus on speed (to execute the code).

 

Is there a white paper, webinar or community post that provides a list with all the tricks which way to go to make Jmp/JSL as fast as possible?

 

[More Topic Containers like this]

1 ACCEPTED SOLUTION

Accepted Solutions
hogi
Level XI

Re: Speeding up JMP/JSL

topicstandard approachfaster approacheslinks
Data tables   
replace values with other valuesfor loopuse DataTable subscriptingReplace missing values with 0
Should you Loop through a data table or use Recode, or use Get Rows Where to change values in a data...
add columns to a data tablemerge data tables via Tables/Updatefirst aggregate via  Tables/Summary
then merge via  Tables/Update
Speed up Tables/Update 
  Tables/ Join 
reset excluded rows   
open data filesuse open (with for loop)use MFI
(faster csv reader!)
Open multiple Files 
column aggregation
with restrictions
col Mean( if(:sex=="M",
:weight,.))
is VERY (!!!) slow

->use if(:sex==1,...):

before: change the column to numeric or use a dummy formula column

How-do-I-use-the-Col-Maximum-Formula-with-a-where 
Col Median (and others): add "Where" option 

 count wordsN Rows(loc(Words(:col Label,"_"),"xxx"))(Length(:col)-Length(Substitute(:col,"xxx","")))/3

Count number of occurrences of specific words in a string

    
Graphs   
    
    
Reports   
    
    
Export   
    
    
    
Database access   
    
    
    
Neural Networks   
    
    
    
...   
    

View solution in original post

4 REPLIES 4
jthi
Super User

Re: Speeding up JMP/JSL

It depends a lot on what you are doing. Some good general tips can be found from Scripting Guide > Efficient Scripts 

-Jarmo
hogi
Level XI

Re: Speeding up JMP/JSL

Thanks, a good place to start ...

 

Going further, how about a list with as many entries as possible along the idea:
If you want to do this, you probably thought of this approach - but concerning speed, the other approach is much better!

 

Who is interested in sharing his secrets

hogi
Level XI

Re: Speeding up JMP/JSL

topicstandard approachfaster approacheslinks
Data tables   
replace values with other valuesfor loopuse DataTable subscriptingReplace missing values with 0
Should you Loop through a data table or use Recode, or use Get Rows Where to change values in a data...
add columns to a data tablemerge data tables via Tables/Updatefirst aggregate via  Tables/Summary
then merge via  Tables/Update
Speed up Tables/Update 
  Tables/ Join 
reset excluded rows   
open data filesuse open (with for loop)use MFI
(faster csv reader!)
Open multiple Files 
column aggregation
with restrictions
col Mean( if(:sex=="M",
:weight,.))
is VERY (!!!) slow

->use if(:sex==1,...):

before: change the column to numeric or use a dummy formula column

How-do-I-use-the-Col-Maximum-Formula-with-a-where 
Col Median (and others): add "Where" option 

 count wordsN Rows(loc(Words(:col Label,"_"),"xxx"))(Length(:col)-Length(Substitute(:col,"xxx","")))/3

Count number of occurrences of specific words in a string

    
Graphs   
    
    
Reports   
    
    
Export   
    
    
    
Database access   
    
    
    
Neural Networks   
    
    
    
...   
    
hogi
Level XI

Re: Speeding up JMP/JSL

I added a cool trick to count words by @ian_jmp :
Count number of occurrences of specific words in a string