Helper function for development - prints current milliseconds. Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/70512792 Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/70512792 Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/70512792
Branch: refs/heads/JENA-507 Commit: 70512792bf8717b2c2d1e22054abdb0fc0945ffc Parents: 03d6e99 Author: Andy Seaborne <[email protected]> Authored: Mon Jan 25 17:14:35 2016 +0000 Committer: Andy Seaborne <[email protected]> Committed: Mon Jan 25 17:14:35 2016 +0000 ---------------------------------------------------------------------- .../jena/sparql/function/library/execTime.java | 57 ++++++++++++++++++++ 1 file changed, 57 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/70512792/jena-arq/src/main/java/org/apache/jena/sparql/function/library/execTime.java ---------------------------------------------------------------------- diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/execTime.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/execTime.java new file mode 100644 index 0000000..d38337a --- /dev/null +++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/execTime.java @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.jena.sparql.function.library; + +import java.util.List ; +import java.util.StringJoiner ; + +import org.apache.jena.sparql.expr.ExprList ; +import org.apache.jena.sparql.expr.NodeValue ; +import org.apache.jena.sparql.function.FunctionBase ; + +/** Function that prints the system time to stderr the point of execution. + * Returns true. + * This is a debugging aid only. + */ +public class execTime extends FunctionBase { + + static long lastms = -1 ; + + @Override + public NodeValue exec(List<NodeValue> args) + { + long now = System.currentTimeMillis() ; + StringJoiner sj = new StringJoiner(" ", "", ""); + args.forEach((a)-> { sj.add(a.asString()) ; }) ; + if ( lastms != -1 ) + sj.add("("+Long.toString(now - lastms)+")") ; + String str = sj.toString() ; + + if ( ! str.isEmpty() ) + System.err.printf("%s : %d ms\n",str, System.currentTimeMillis()) ; + else + System.err.printf("---- %d ms\n",str, System.currentTimeMillis()) ; + lastms = now ; + return NodeValue.TRUE ; + } + + @Override + public void checkBuild(String uri, ExprList args) + {} +}
