Mercurial > repos > rliterman > csp2
diff CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/tax/Query.java @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/tax/Query.java Tue Mar 18 16:23:26 2025 -0400 @@ -0,0 +1,186 @@ +package tax; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Arrays; +import java.util.Locale; + +import shared.Shared; +import shared.Timer; + +public class Query { + + /** For testing throughput */ + public static void main(String[] args){ + +// sun.net.http.errorstream.enableBuffering=true; + +// System.setProperty("sun.net.http.errorstream.enableBuffering", "true"); +// System.setProperty("http.errorstream.enableBuffering", "true"); +////// System.setProperty("", ""); +// System.setProperty("http.keepAlive", "true"); +// System.setProperty("http.maxConnections", "50"); +//// System.setProperty("", ""); +//// System.setProperty("", ""); +// +// System.out.println("sun.net.http.errorstream.enableBuffering="+System.getProperty("sun.net.http.errorstream.enableBuffering")); +// System.out.println("sun.net.http.errorstream.timeout="+System.getProperty("sun.net.http.errorstream.timeout")); +// System.out.println("sun.net.http.errorstream.bufferSize="+System.getProperty("sun.net.http.errorstream.bufferSize")); +// System.out.println("http.keepAlive="+System.getProperty("http.keepAlive")); +// System.out.println("http.maxConnections="+System.getProperty("http.maxConnections")); +// System.out.println(System.getProperties()); +// System.out.println("="+System.getProperty("")); +// System.out.println("="+System.getProperty("")); +// System.out.println("="+System.getProperty("")); + + String x=args[0]; + int requests=(args.length>1 ? Integer.parseInt(args[1]) : 1); + + Timer t=new Timer(); + Timer t2=new Timer(); + Timer t3=new Timer(); + +// URL url=toUrl(x); + for(int i=0; i<requests; i++){ + String s=request(x); +// System.out.println(s); + if(i==0){t3.start();} + //t2.stop(""); + //t2.start(); + } + + t3.stop(); + + t.stop("Time: \t"); + double qps=requests*1000000000.0/(t.elapsed); + System.err.println(String.format(Locale.ROOT, "Qps: \t%.2f", qps)); + + System.err.println("Time2: \t"+t3); + double qps2=(requests-1)*1000000000.0/(t3.elapsed); + System.err.println(String.format(Locale.ROOT, "Qps2: \t%.2f", qps2)); + +// System.out.println(s); + +// BufferedReader reader; +// try { +// reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8")); +// +// for (String line; (line = reader.readLine()) != null;) { +// System.out.println(line); +// } +// +// } catch (UnsupportedEncodingException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + } + + public static int[] getGi(String...args){ + return get("pt_gi", args); + } + + public static int[] getAccession(String...args){ + return get("pt_accession", args); + } + + public static int[] get(String type, String...args){ + String host=Shared.taxServer(); + StringBuilder sb=new StringBuilder(host.length()+32); + sb.append(host); + sb.append(type); + sb.append('\t'); + String comma=""; + for(String arg : args){ + sb.append(comma); + sb.append(arg); + comma=","; + } + String result=request(sb.toString()); + String[] split=result.split(","); + int[] ret=new int[split.length]; + for(int i=0; i<split.length; i++){ + ret[i]=Integer.parseInt(split[i]); + } + return ret; + } + + public static String request(String x){ + InputStream is=toStream(x); + if(is==null){return null;} + try { + byte[] buffer=new byte[256]; + int count=is.read(buffer); + int next=0; + while(count>-1){ + next+=count; + if(next>=buffer.length){ + buffer=Arrays.copyOf(buffer, buffer.length*2); + } + count=is.read(buffer, next, buffer.length-next); + } + is.close(); //TODO: Why am I not closing this stream? + return new String(buffer, 0, next); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + is.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + public static InputStream toStream(String x){ + URL url=null; + + try { + url = new URL(x); + } catch (MalformedURLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + return null; + } + + try { + InputStream is=url.openStream(); + return is; + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + +// public static URL toUrl(String x){ +// URL url=null; +// try { +// url = new URL(x); +// } catch (MalformedURLException e1) { +// // TODO Auto-generated catch block +// e1.printStackTrace(); +// } +// +// return url; +// } +// +// public static URLConnection toUrlConnection(URL url, String x){ +// URLConnection urlc=null; +// +// try { +// urlc = url.openConnection(); +// } catch (IOException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// return urlc; +// } + +}