Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function t = testBranchPrediction()
- % data
- data = randi(256, [32768 1]);
- dataS = sort(data);
- % check results are equal
- v = {
- sum_conditional_if(data);
- sum_conditional_if(dataS);
- sum_conditional_continue(data);
- sum_conditional_continue(dataS)
- };
- assert(isequal(v{:}));
- % time
- t = zeros(4,2);
- feature accel on
- feature jit on
- t(1) = timeit(@() sum_conditional_if(data));
- t(2) = timeit(@() sum_conditional_if(dataS));
- t(3) = timeit(@() sum_conditional_continue(data));
- t(4) = timeit(@() sum_conditional_continue(dataS));
- feature accel off
- feature jit off
- t(5) = timeit(@() sum_conditional_if(data));
- t(6) = timeit(@() sum_conditional_if(dataS));
- t(7) = timeit(@() sum_conditional_continue(data));
- t(8) = timeit(@() sum_conditional_continue(dataS));
- end
- function s = sum_conditional_if(data)
- s = 0;
- for i=1:1e2
- for c=1:numel(data)
- if data(c) >= 128
- s = s + data(c);
- end
- end
- end
- end
- function s = sum_conditional_continue(data)
- s = 0;
- for i=1:1e2
- for c=1:numel(data)
- if data(c) < 128
- continue;
- end
- s = s + data(c);
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement