Skip to content

Instantly share code, notes, and snippets.

@aliaspooryorik
Last active August 29, 2015 14:19
Show Gist options
  • Save aliaspooryorik/31ec782d04daa90dfef5 to your computer and use it in GitHub Desktop.
Save aliaspooryorik/31ec782d04daa90dfef5 to your computer and use it in GitHub Desktop.
listFind alternatives
<cfscript>
// create a dummy list....
list = "";
elements = 5000;
step = 5;
i = 0;
while (i<elements) {
list = listAppend(list, elements + i);
i++;
}
// dummy list seeded let the tests commence...
i = 0;
found = 0;
start = getTickCount();
while (i<elements) {
if (listfind(list, elements + i)) {
found++;
};
i+=step;
}
end = getTickCount();
writeOutput('listfind found ' & found & ' in ' & elements & ' items ' & end-start & "ms<br>");
i = 0;
found = 0;
start = getTickCount();
asArray = listToArray(list);
while (i<elements) {
if (arrayfind(asArray, elements + i)) {
found++;
};
i+=step;
}
end = getTickCount();
writeOutput('arrayFind found ' & found & ' in ' & elements & ' items ' & end-start & "ms<br>");
i = 0;
found = 0;
start = getTickCount();
asArray = listToArray(list);
while (i<elements) {
if (asArray.contains(javaCast("string", elements + i))) {
found++;
};
i+=step;
}
end = getTickCount();
writeOutput('contains found ' & found & ' in ' & elements & ' items ' & end-start & "ms<br>");
i = 0;
found = 0;
start = getTickCount();
asList = createObject("java","java.util.Arrays").asList(listToArray(list));
while (i<elements) {
if (asList.contains(javaCast("string", elements + i))) {
found++;
};
i+=step;
}
end = getTickCount();
writeOutput('contains found ' & found & ' in ' & elements & ' items ' & end-start & "ms<br>");
</cfscript>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment