[ https://issues.apache.org/jira/browse/ANY23-336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16416423#comment-16416423 ]
Peter Ansell commented on ANY23-336: ------------------------------------ It appears as though the setting is named "setSharedCache", with the requirement to set it to false to make Cache-Control: private be cached. https://hc.apache.org/httpcomponents-client-ga/httpclient-cache/apidocs/org/apache/http/impl/client/cache/CacheConfig.Builder.html#setSharedCache(boolean) I don't have time to fix it myself right now, but if you want to add setSharedCache(false) at the following line and add a test for it (time limited test to verify it completes in a much shorter time than before fixing) I will get to merging and releasing a new JSONLD-Java version. https://github.com/jsonld-java/jsonld-java/blob/master/core/src/main/java/com/github/jsonldjava/utils/JsonUtils.java#L416 As the headers above note though, even with Cache-Control: private being setup like that, it would still only cache for 600 seconds, ie, 10 minutes based on the headers I posted above for max-age > Parsing json-ld content takes prohibitively long time > ----------------------------------------------------- > > Key: ANY23-336 > URL: https://issues.apache.org/jira/browse/ANY23-336 > Project: Apache Any23 > Issue Type: Bug > Components: core, extractors > Affects Versions: 2.2 > Reporter: Hans Brende > Assignee: Peter Ansell > Priority: Critical > Fix For: 2.3 > > Attachments: Screen Shot 2018-03-27 at 2.52.15 PM.png, Screen Shot > 2018-03-27 at 2.54.43 PM.png > > > Using the page [https://www.guthriegreen.com|https://www.guthriegreen.com/] > as a benchmark, a page fetch took about 100 ms, while simply *parsing* the > json-ld content on that page took a *staggering 27400 ms*. For reference, I'm > using Java 8, build 162, on a Macbook Pro (early 2015). > The bad news is that this is not our fault. > I've profiled this behavior down to the > {{com.github.jsonldjava.utils.JsonUtils.fromURL(URL, CloseableHttpClient)}} > function. 94% of the parsing time is spent there. This function is called > when trying to load remote json-ld contexts. > In order to avoid loading remote contexts repeatedly, this function tries to > *cache* them by using a {{CachingHttpClient}} from the httpclient-osgi > library. > Unfortunately, that strategy is *not* working, as I have recorded exactly > *zero* cache hits, meaning that *every* retrieval is a cache miss and a > remote context is re-fetched via http every single time it's accessed. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)