You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by jo...@apache.org on 2021/07/06 19:20:15 UTC

[sling-org-apache-sling-scripting-core] branch improvement/SLING-10584-BVP-timing created (now 7ab30ed)

This is an automated email from the ASF dual-hosted git repository.

joerghoh pushed a change to branch improvement/SLING-10584-BVP-timing
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-core.git.


      at 7ab30ed  SLING-10584 log an info message if adding bindings takes more than 1 msec

This branch includes the following new commits:

     new 7ab30ed  SLING-10584 log an info message if adding bindings takes more than 1 msec

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[sling-org-apache-sling-scripting-core] 01/01: SLING-10584 log an info message if adding bindings takes more than 1 msec

Posted by jo...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

joerghoh pushed a commit to branch improvement/SLING-10584-BVP-timing
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-core.git

commit 7ab30eddd0d89686e6bb1bf4f46e031b46aa9ced
Author: Joerg Hoh <jh...@adobe.com>
AuthorDate: Tue Jul 6 21:19:41 2021 +0200

    SLING-10584 log an info message if adding bindings takes more than 1 msec
---
 .../org/apache/sling/scripting/core/impl/DefaultSlingScript.java  | 6 ++++++
 .../sling/scripting/core/impl/bundled/ScriptContextProvider.java  | 8 ++++++++
 2 files changed, 14 insertions(+)

diff --git a/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java b/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
index 519080d..670350a 100644
--- a/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
+++ b/src/main/java/org/apache/sling/scripting/core/impl/DefaultSlingScript.java
@@ -732,7 +732,13 @@ class DefaultSlingScript implements SlingScript, Servlet, ServletConfig {
 
             ProtectedBindings protectedBindings = new ProtectedBindings(bindings, protectedKeys);
             for (BindingsValuesProvider provider : bindingsValuesProviders) {
+                long start = System.nanoTime();
                 provider.addBindings(protectedBindings);
+                long stop = System.nanoTime();
+                if (start-stop > (1000*1000)) { // 1 ms
+                    LOGGER.info("Adding the bindings of {} took {} microseconds, it might impact general performance", 
+                            provider.getClass().getName(), (start-stop)/1000);
+                }
             }
         }
 
diff --git a/src/main/java/org/apache/sling/scripting/core/impl/bundled/ScriptContextProvider.java b/src/main/java/org/apache/sling/scripting/core/impl/bundled/ScriptContextProvider.java
index 3ce7ef1..76f3423 100644
--- a/src/main/java/org/apache/sling/scripting/core/impl/bundled/ScriptContextProvider.java
+++ b/src/main/java/org/apache/sling/scripting/core/impl/bundled/ScriptContextProvider.java
@@ -52,6 +52,8 @@ import org.slf4j.LoggerFactory;
         service = ScriptContextProvider.class
 )
 public class ScriptContextProvider {
+    
+    private static final Logger LOG = LoggerFactory.getLogger(ScriptContextProvider.class);
 
     private static final Set<String> PROTECTED_BINDINGS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
             SlingBindings.REQUEST,
@@ -105,7 +107,13 @@ public class ScriptContextProvider {
         ProtectedBindings protectedBindings = new ProtectedBindings(bindings, PROTECTED_BINDINGS);
         for (BindingsValuesProvider bindingsValuesProvider : bvpTracker.getBindingsValuesProviders(scriptEngine.getFactory(),
                 BindingsValuesProvider.DEFAULT_CONTEXT)) {
+            long start = System.nanoTime();
             bindingsValuesProvider.addBindings(protectedBindings);
+            long stop = System.nanoTime();
+            if ((stop-start) > (1000*1000)) { // 1ms
+                LOG.info("Adding the bindings of {} took {} microseconds, it might impact general performance", 
+                        bindingsValuesProvider.getClass().getName(), (start-stop)/1000);
+            }
         }
         ScriptContext scriptContext = new BundledScriptContext();
         Map<String, LazyBindings.Supplier> slingBindingsSuppliers = new HashMap<>();