Why the same function is taking more time after MEX creation?
    3 views (last 30 days)
  
       Show older comments
    
    JAI PRAKASH
      
 on 27 Aug 2018
  
    
    
    
    
    Edited: Ryan Livingston
    
 on 29 Aug 2018
            I want to create mex of 'sort()' funtion.
So I build below function
function idx = sort2(h)  % h is 600x1280 'single' elements
[~,idx] = sort(h(:));  % because I just want indices only, I dont want the elements.
end
If I call above funtion:

Why the 'MEX' is taking more time??
0 Comments
Accepted Answer
  Ryan Livingston
    
 on 28 Aug 2018
        
      Edited: Ryan Livingston
    
 on 29 Aug 2018
  
      The MATLAB Coder documentation has a section covering acclerating MATLAB code via MEX generation:
One page that's relevant to what you are seeing is:
It contains the statement:
Use MEX functions to accelerate MATLAB code only if user-generated code dominates the run time.
Avoid generating MEX functions if computationally intensive, built-in MATLAB functions dominate the run time. These functions are pre-compiled and optimized, so the MATLAB code is not accelerated significantly using a MEX function.
In MATLAB, sort is a built-in function that is hand-optimized and compiled. So the generated code likely won't be any faster and can be slower in some cases.
More Answers (0)
See Also
Categories
				Find more on Write C Functions Callable from MATLAB (MEX Files) in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
