You can also try https://github.com/ba-st/Superluminal which has caching support among other things.
On Wed, 6 Jan 2021, 16:42 Esteban Maringolo, <emaring...@gmail.com> wrote: > To avoid doing something like that, and for a web scrapping tool I > wrote, I implemented a basic subclass of ZnClient (called > ZnCachingClient) that used a disk cache where each key/file was the > hash of the requested URL. > > I haven't used in a while but it should continue to work, in any case, > I published it in a Github repository: > https://github.com/eMaringolo/zinc-caching-client > > Best regards, > > Esteban A. Maringolo > > On Wed, Jan 6, 2021 at 3:37 PM Richard Sargent > <richard.sarg...@gemtalksystems.com> wrote: > > > > > > > > On Wed, Jan 6, 2021 at 10:34 AM Roelof Wobben via Pharo-users < > pharo-users@lists.pharo.org> wrote: > >> > >> > >> Thanks, > >> > >> Right now im downloading/fetching the images every time again. > >> > >> As I see it, the biggest bottleneck is that I have 10 images. > >> And for all 10 I fetching the image and the data I could display when a > >> user wants it. > >> So that will be 20 calls to the api. > >> > >> So maybe some cache could be handy. > >> Any hints how to make a cache in smalltalk. > > > > > > Dictionary coupled with #at:ifAbsentPut: > > > >> > >> Roelof > >> > >> > >> > >> Op 6-1-2021 om 19:19 schreef Sven Van Caekenberghe: > >> > Roelof, > >> > > >> > Working with multiple high resolution images, as I believe you are > >> > doing, is always going to be a real challenge, performance wise. It > >> > just takes time to transfer lots of data. > >> > > >> > First you have to make sure that you are not doing too much work > >> > (double downloads, using too high resolutions for previews or > >> > browsing). Also, make sure your ultimate client (the browser) can > >> > cache as well if applicable (set modification dates on the response). > >> > > >> > Next you could cache images locally (on your app server) so that next > >> > time you need the same image, you do not need to download it again. Of > >> > course, this only helps if your hit rate is higher than zero (if you > >> > actually ask for the same image multiple times). > >> > > >> > It is also possible to do multiple download requests concurrently: if > >> > the other end is fast enough, that can certainly help. > >> > > >> > HTH, > >> > > >> > Sven > >> > > >> >> On 6 Jan 2021, at 18:11, Roelof Wobben via Pharo-users > >> >> <pharo-users@lists.pharo.org> wrote: > >> >> > >> >> > >> >> I did it on the root document and see this : > >> >> > >> >> <nkdkdknfekaflcfc.png> > >> >> > >> >> So as far as I see it , The most time it taken by getting all the > >> >> data from all the 10 images. > >> >> > >> >> I hope someone can look at me if im on the right track and will help > >> >> me to figure out faster ways to achieve the same > >> >> > >> >> Roelof > >> >> > >> >> > >> >> > >> >> Op 5-1-2021 om 05:16 schreef Richard O'Keefe: > >> >>> Before you take another step, explore the root document. > >> >>> > >> >>> Profiling is easy. > >> >>> Open a Playground. > >> >>> Type an expression such as > >> >>> 3 tinyBenchmarks > >> >>> Right click and select 'Profile it'. > >> >>> > >> >>> More generally, in a browser, look at the "Tool - Profilers" > >> >>> class category. The classic approach was > >> >>> MessageTally spyOn: [3 tinyBenchmarks] > >> >>> If I understand correctly, 'Profile it' uses TimeProfiler, > >> >>> which has a nicer interface. (This is in Pharo 8.) > >> >>> > >> >>> > >> >>> On Sun, 3 Jan 2021 at 23:03, Roelof Wobben <r.wob...@home.nl> > wrote: > >> >>> I want that the code fetches a url and some data from the > >> >>> Rijksmuseaum api. > >> >>> And as far as I see it the second it not pointless because it > >> >>> getting more detailed info about the painting as in the first get. > >> >>> > >> >>> I did not profiled it because I never learned how to do that in > Pharo. > >> >>> > >> >>> Roelof > >> >>> > >> >>> > >> >>> > >> >>> Op 3-1-2021 om 01:09 schreef Richard O'Keefe: > >> >>>> What do you want the code to do? > >> >>>> Have you profiled the code to see where the time is going? > >> >>>> > >> >>>> A quick look at the code shows > >> >>>> - Paintings does one web get > >> >>>> - each Painting does two more web gets > >> >>>> ! and the first of those seems to be pretty pointless, > >> >>>> as it refetches an object that Paintings already fetched > >> >>>> and just looked at. > >> >>>> > >> >>>> > >> >>>> > >> >>>> On Sun, 3 Jan 2021 at 01:16, Roelof Wobben via Pharo-users > >> >>>> <pharo-users@lists.pharo.org> wrote: > >> >>>> Hello, > >> >>>> > >> >>>> I have now this code : https://github.com/RoelofWobben/Rijksmuseam > >> >>>> > >> >>>> but it seems to be slow. > >> >>>> > >> >>>> Can anyone help me with a way I can use a sort of cache so the page > >> >>>> looks first at the cache if a image is there . > >> >>>> If so, take the image from there , if not , ask the api for the > url of > >> >>>> the image. > >> >>>> > >> >>>> Roelof >