sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject [sis] branch geoapi-4.0 updated: Add a note about another failed attempt to optimize.
Date Thu, 31 Dec 2020 09:57:08 GMT
This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new b9edb1f  Add a note about another failed attempt to optimize.
b9edb1f is described below

commit b9edb1fb3863c20314c6a30b84f0cc2576a9ed3b
Author: Martin Desruisseaux <martin.desruisseaux@geomatys.com>
AuthorDate: Thu Dec 31 10:56:33 2020 +0100

    Add a note about another failed attempt to optimize.
---
 .../internal/processing/image/IsolineTracer.java    | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
index 364b186..71af85f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
@@ -267,6 +267,27 @@ final class IsolineTracer {
          */
         @SuppressWarnings("AssertWithSideEffects")
         final void interpolate() throws TransformException {
+            /*
+             * Note: `interpolateMissingLeftSide()` and `interpolateMissingTopSide(…)`
should do interpolations
+             * only for cells in the first column and first row respectively. We could avoid
those method calls
+             * for all other cells if we add two flags in the `isDataAbove` bitmask: FIRST_ROW
and FIRST_COLUMN.
+             * The switch cases them become something like below:
+             *
+             *     case <bitmask> | FIRST_COLUMN | FIRST_ROW:
+             *     case <bitmask> | FIRST_COLUMN: {
+             *         interpolateMissingLeftSide();
+             *         // Fall through
+             *     }
+             *     case <bitmask> | FIRST_ROW:
+             *     case <bitmask>: {
+             *         // Interpolations on other borders.
+             *         break;
+             *     }
+             *
+             * We tried that approach, but benchmarking on Java 15 suggested a small performance
decrease
+             * instead than an improvement. It may be worth to try again in the future, after
advancement
+             * in compiler technology.
+             */
             switch (isDataAbove) {
                 default: {
                     throw new AssertionError(isDataAbove);      // Should never happen.


Mime
View raw message