Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Sun Mar 20 18:40:11 IST 2016::Starting
- Sun Mar 20 18:43:03 IST 2016::Generated test data, count 40000000
- Doing 20000000 validations.
- Sun Mar 20 18:43:30 IST 2016 Done in 26860 msecs.
- 0.001343 milliseconds per validation
- import java.util.Date;
- import java.util.HashSet;
- import java.util.Random;
- import java.util.Set;
- public class UserValidator {
- Set<String> validCredentials=new HashSet<>();
- long numCredentials = 1000*1000*60;
- Random rnd = new Random();
- char[] validChars=null;
- public UserValidator(){
- String chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*~*()";
- validChars = chars.toCharArray();
- }
- String generateRandomString(int len){
- StringBuilder sb = new StringBuilder( len );
- for( int i = 0; i < len; i++ )
- sb.append( validChars[ rnd.nextInt(validChars.length) ] );
- return sb.toString();
- }
- String getRansomString(){
- int len = 4;
- len = len+rnd.nextInt(20);
- return generateRandomString(len);
- }
- void generateTestData(){
- for(long i=0;i<numCredentials;i++){
- String username=getRansomString();
- String password=getRansomString();
- String credentials=username+":::"+new String(username+":"+password).hashCode();
- validCredentials.add(credentials);
- }
- }
- boolean isValidUser(String user, String password){
- String credentials=user+":::"+new String(user+":"+password).hashCode();
- return validCredentials.contains(credentials);
- }
- public static void main(String[] args) {
- UserValidator u = new UserValidator();
- System.out.println(new Date().toString()+"::Starting");
- u.generateTestData();
- System.out.println(new Date().toString()+"::Generated test data, count "+u.validCredentials.size());
- int lookups=20*1000*1000;
- System.out.println("Doing "+lookups+" validations.");
- long timeStart = new Date().getTime();
- for(int i=0;i<lookups;i++){
- u.isValidUser(u.getRansomString(), u.getRansomString());
- }
- long timeEnd = new Date().getTime();
- long timeSpent = (timeEnd-timeStart);
- System.out.println(new Date().toString()+" Done in "+timeSpent+" msecs.");
- System.out.println((double)timeSpent/(double)lookups +" milliseconds per validation");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement