RW 8.0.3: Generating Previews


(Mark Sealey) #1

Since other related topics have been closed, may I add my voice to those who’ve found that RW 8 (.0.3) is unacceptably slow generating previews, please?

I have a two page (placeholder) site where moving to Preview from Edit doesn’t always display the right page.

A Preview can take anything up to five minutes to generate.

Anyone any ideas, please?


Dodgy Preview Engine in RW8
(Isaiah Carew) #2

It’s impossible to help without more specific detail.

Obviously previewing a simple page full of text takes < 1second – so the content of the 5 minute page is clearly substantially more than that.

It could be images, stacks, resources, or just purely a lot of complex content. The more of it there is the longer it will take.

If you sent me the file, I’d analyze it by doing this:

  • first, clean up the project so i’m only looking at one thing at a time:
    • Delete all other pages.
    • Uninstall all unused stacks and plugins.
    • Remove any extra JS/CSS/etc that is in the project settings.
    • Save, Quit, and then Re-Open project

this gives you just a single page in a relatively clean file. if there was anything crazy going on in another plugin, another page, or in weird JS errors – then all that stuff won’t muddy the water when looking at things.

  1. next I’d do a first preview of the page and measure how long it takes. if it’s more than a few seconds i’d actually use a stopwatch to do it. otherwise you’re trusting in your own perception of time (which is, for most humans, not especially good).
  2. delete the lower half of all stacks on the page. and again preview.
    if this preview does not change substantially
  3. if it’s still just as long as in step #1 – then undo the deletion and delete the top half of the stacks.
  4. go back to step #2 and repeat. your goal is remove as many items from the page as possible while still keeping the slowness.

When you complete this process you should have a page where removing any single stack from it cause the page to speed up by a large amount. If that’s not true, you haven’t repeated enough times.

This may seem like a long and arduous process. But removing half of the stacks on the page at time can sort through 1024 stacks in just 10 repetitions. I bet you have a lot less than 1024 stacks on the page, so probably it will go quite a bit quicker than that.

  • Deal with what’s left over:
    Whatever remains on the page is the responsible stack or stacks that are causing the slowdown. From this point it depends greatly on which stack it is.
    • if it’s an image kind of thing: make sure your images are of reasonable size. try to use them in the original form – image processing, especially of large images, takes a long time. Do this on a lot of images takes a really really long time. If stacks doesn’t have to do any transformations (like scaling them down) then things will run much faster.
    • If there are not a lot of options for the stack: it may be that the stack is just a really really slow one. There are unfortunately quite a few stacks out there that are very slow. If this is the case, let the developer know. Sometimes developers don’t test as many use cases, or test performance, as much as they should. Telling them “hey, please fix this” is the best way forward.
    • something else? then post what you find out. and we can give you more specific help from there

Isaiah


(Mark Sealey) #3

Thanks, Isaiah, for that detailed and helpful reply!

I should point out that I have no reason to suspect Stacks :slight_smile: … long time user who has nothing but praise for Stacks and all your work!

I certainly can experiment (as you kindly suggest); just that I had read (before I upgraded to 8) that others had experienced lengthy preview generation times.

When you say

do you mean literally to remove them from my RW installation?

Is this something new in 8?

I have half a dozen sites, some of which do need some of the stacks in your iterative elimination process.

The Project in question uses just FormSnap, Houdini, Translate and the Text Stack; and is, as I say, just two pages.

Your jumping in to help is very much appreciated :slight_smile:


(Isaiah Carew) #4

do you mean literally to remove them from my RW installation?

Remove everything unnecessary from the RW Addons folder.

Is this something new in 8 ?

No. This is just to solve this particular problem. I did the exact same thing in RapidWeaver 4, 5, 6, and 7 too. This is just a method of solving ANY RW problem.

The things you are experiencing are far from normal – I have NEVER experienced anything like a 5-min preview. Not even with betas, not even with the most egregiously massive sites I’ve ever seen.

Obviously you don’t have to leave things that way. Just move most of your stacks/plugins/themes out to a temporary folder. Then put them back when you’re done experimenting.

And when I say “delete all pages except the one in question” – I don’t mean permanently. I just mean to delete them on a copy of the file – just to see if we can isolate the problem a bit.

Everything that’s inside of your RapidWeaver addons folder will affect performance – even when it’s not being used.

This is not likely to be what is slowing down your previews – but you never know. The only way to be certain is to remove those thing (temporarily).

After you have come to a conclusion about what is slowing down this page – then you can move everything back in if you like.

The Project in question uses just FormSnap, Houdini, Translate and the Text Stack; and is, as I say, just two pages.

All the more reason to try to get to the bottom of this. A project that simple should be previewing almost instantaneously – even on older hardware it should be just a few seconds at worst.

But it’s impossible to say which of those things is causing the issue – or maybe it’s none of those things and it’s just some ancient plugin that you’ve forgotten about. Or maybe you have 10,000 stacks installed and the whole system is grinding to a halt. We just don’t know – until you isolate the problem.

But don’t worry, it’s super easy. Copy the project, remove the addons, and start hacking at the page until there’s nothing left but the problem. It only takes a minute or two and then you’ll know for certain.

Isaiah


(Mark Sealey) #5

Thank you, Isaiah.

I shall certainly try what you kindly suggest.

In the past I have been badly bitten by moving Addons in and out of their appointed folder; I’ve assumed that RW keeps its own internal check/manifest on what it expects to find there; and that manually ‘going behind its back’ is asking for trouble.

I learnt when I upgraded to RW 8 today (which is when the slowness started) that there is a new Addons installer. And wasn’t/am not sure how that works and whether it’s now a requirement to follow (that or) a specific procedure to install (new) Addons.

In the past, as you’ll remember, methods have varied… double clicking the distribution file(s) for Addons, dragging it/them to the RW icon in the dock, running a dedicated installer and simply moving it/them into a specific folder.

If it’s now safe to move Addons around, I shall gladly give that a try :slight_smile: .

I assume you’d suggest moving everything out except those four (viz FormSnap, Houdini, Translate and the Text Stack)?

You’re right: I have a very fast machine - an iMac Retina 5K, Late 2014 with 4 GHz Core i7 processor and 32 GB RAM + plenty of HD space!

It was also b/c I’d read of others experiencing the same or a similar phenomenon that I posted, assuming that it was a shortcoming of version 8.

Thanks for your encouraging suggestions, Isaiah!


(Rob D) #6

This thread and especially @isaiah’s troubleshooting suggestions inspired me to conduct my own experiments.

I am experiencing a steady decline in RW’s performance since version 5, despite having plenty of “horsepower” and disk-space. I am not sure whether this is strictly RW’s fault, any addon’s fault or simply because I get more and more addons and because my websites get more complex over the years.

I plan to get pretty radical in my experiment. I will de-install all addons, leaving behind only one theme and stacks necessary for a particular project and see how this will affect the performance. I certainly hope to notice the difference! Wish me luck. And thank you for the inspiration, guys…


(Mark Sealey) #7

Rob,

Not wishing to labour the point, is it now 100% accepted by those in the know that it’s OK manually to move Addons and and out of their folder?


(Doug Bennett) #8

I’ve been doing it for sometime, I just make sure RapidWeaver isn’t running when I move things, and all seems to work fine.


(Mark Sealey) #9

Thanks, Doug!

I just opened another Project, which I’d converted. The previews each took less than two seconds to generate.

In the case of the site I referred to above, it seems likely that there is a component causing the delay.

Conflict Catcher comes to mind.


(Isaiah Carew) #10

I’ve assumed that RW keeps its own internal check/manifest on what it expects to find there

Nope. Whatever is in the addons folder when you launch RW is what is used. There’s no magic here.

there is a new Addons installer

This is inaccurate.

RapidWeaver uses a very standard macOS plugin mechanism (just like the System Preferences app, among others). That means you can always just drop a plugin into the addons folder and re-launch RW and it load up that plugin. That’s it.

Over the course of RW’s history a few more conveniences were added. In RW4.5 you could double click on plugin and RW would put it into the addons folder and re-launch itself.

Later, in RW6 the “.stack” extension was added to the list of file-types that will get auto-moved to the addons folder. (just prior to this, there was a short-lived “Stack Installer” that I created and a few developers shipped with their stacks – but it’s lifetime was only about 6 months long, so i’ll leave it at that)

RW6, 7, and 8 have all had progressively nicer integrated addons window for inspecting which addons you have in your addons folder.

In RW8 the addons window allows you to uncheck whether a plugin, theme, or stack is active. In reality, it just moves that plugin to a “disabled” folder when it’s unchecked.

So is there a “new installer” – maybe if you squint and stretch the meaning of all of those words. :stuck_out_tongue_winking_eye: But, at least in my view, it’s the same as it ever was – just with a much improved addons window.

Case in point: How do you install a stack: double click it, or drag it to the app icon, or control click it and choose “open” or “open with…”, or drag it into your addons folder yourself. All of these methods have worked for more than 5 years. Dragging to the folder has been around more than 10.

If it’s now safe to move Addons around

It is and has been since I created the first RapidWeaver plugin in 2005. Just make sure to do the moves when RW is NOT running.

I assume you’d suggest moving everything out except those four (viz FormSnap , Houdini , Translate and the Text Stack)?

The goal is to simplify as much as possible. So remove all the 3rd party plugins, themes, and stacks that you can remove. Don’t remove the stuff that’s built in to RW or Stacks – those are very difficult to locate, and the app will likely not even launch if its guts are rearranged.

It was also b/c I’d read of others experiencing the same or a similar phenomenon that I posted, assuming that it was a shortcoming of version 8.

There are always growing pains when a large app, with tens of thousands of active users, has a major update. There have indeed been some preview bugs. But they are largely confined to specific use cases (large projects with huge pages that use CSS heavy frameworks). If you’re not using a slow framework (you don’t seem to be), don’t have a huge project (two pages is the opposite of huge), and you’re working on fast hardware (your machine is one of the very fastest) – then you, like me, should experience preview times of a few seconds at worst.

Anything else suggests that there is something amiss in your environment.

So the goal of the experiment above, is to try to identify what is slowing RW down. Once found it can probably be eliminated or repaired and you’ll have a nice fast app again.

Isaiah


(Mark Sealey) #11

there is a new Addons installer

This is inaccurate.

I’m referring to the way that Addons-iv3hHp.rwaddons now works when moving/copying from another location on upgrading (from 7 to 8).

All of these methods have worked for more than 5 years. Dragging to the folder has been around more than 10.

I’ve been sing RW since v.3 so can be forgiven, I think, for having become hazy about what was introduced when.

So remove all the 3rd party plugins, themes, and stacks that you can remove.

In the Addons Manager from within RW?

I just took a stab at Houdini and Translate and eliminated those stacks from the pages. I imagined that - since it requires a connection to Google - that might be the cause. But no :frowning:.

I shall keep trying, thank you, Isaiah.

And just to be clear - I’m accusing no-one, have generally been a big supporter of RW and its community and world. And specifically have no reason to assume anything is amiss with the Stacks site of things :slight_smile:.


(Isaiah Carew) #12

I’m referring to the way that Addons-iv3hHp.rwaddons now works when moving/copying

.rwaddons files are packages – often of a few addons – in a tidy package. they don’t really behave any differently. you double click, they install. that’s it.

they aren’t new either. i’m not sure when they were added exactly, but Joe Workman has been using them to install is stack bundles for quite a while. i’m guessing they were a feature of RW 7 – so a couple years ago – but probably just weren’t used by too many developers for a while after. but no. not new.

if you have a well educated guess, then it’s always worth while to take a chance and try a solution. but too often i see folks simply trying things at random to solve problems: change a setting – nope it’s not that, change a few stacks – nope not that either, make copy the project to see if that helps – nope, and on and on…

the problem is that this haphazard approach just complicates the issue, introduces more unknowns, and perhaps even creates new issues to that obscure what you were originally trying to solve.

if you simply take a few minutes and follow the steps i laid out, you might already have a good idea of what was causing the problem. it will likely take less time to do that then it would to write another forum post. :stuck_out_tongue:

seriously, what have you got to lose but 30 minutes. if it reveals nothing, then no big loss. but i suspect it will at least get us closer to a solution.
do it while you wait for the coffee to finish brewing tomorrow morning. you’ll be glad you did. :slight_smile:

Isaiah


(Mark Sealey) #13

I’m referring to the way that Addons-iv3hHp.rwaddons now works when moving/copying

.rwaddons files are packages – often of a few addons – in a tidy package. they don’t really behave any differently. you double click, they install. that’s it.

Yes. Addons-iv3hHp.rwaddons is created when you let the RW 8 upgrade process bundle up and move everything to a new location. It also appears now to separate Addons into a different set of categories from the way I had let them grow organically since they first appeared for use with RW!

if you simply take a few minutes and follow the steps i laid out,

Yes, of course. And you’re saying to use the inbuilt Addons Manager, not manually shifting things around at the filesystem level, aren’t you?


(Isaiah Carew) #14

Addons-iv3hHp.rwaddons* is created when you let the RW 8 upgrade process bundle up and move everything to a new location

I wasn’t aware of this. But the update only happens once, I probably did it before this was a feature, and I don’t write that software – so ¯\(ツ)/¯ – but whatever the case, I can’t think of a reason why that would be material to our discussion of your issue. Let’s move on. :smiley:

And you’re saying to use the inbuilt Addons Manager , not manually shifting things around at the filesystem level, aren’t you?

I’m saying it doesn’t matter. Do whatever you like. I prefer to move things around in the Finder because it’s rather simple. Especially when trying to debug. I follow this process:

  1. Quit RapidWeaver
  2. Select All inside the Addons folder.
  3. Drag everything to a temporary folder on the Desktop. Yes everything. The simplest way to debug is with a fresh clean, default addons folder.
  4. Add back in only what is absolutely required to open the document in question.
  5. Re-launch RapidWeaver.

I save the RW addons manager for when I’m just enabling or disabling one or two things. But if you’re going to be removing a dozen (or several hundred in some folks’ case) then that’s a lot of little checkboxes to click. In that case it’s probably easier to do a Select All in the Finder and drag the files around.

But, like, hey – this thread is now about a mile long. I’ve typed several thousand words. You have not even attempted (unless you’re keeping it secret) the first step in this process.

I’m going to hold further responses until you do, OK?

I’m not trying to be mean, I’m just trying to save my poor fingers, and spread my time out to other users that need help too. :slight_smile:

Isaiah


(Mark Sealey) #15

I’ve been keeping it a secret :slight_smile: .

Isaiah - your help is invaluable; and not taken for a minute as mean - or anything remotely like it. You’re a busy person; and we don’t even know this is anything to do with Stacks :slight_smile:

Seriously, I have been digging around since the weekend. Not methodically - because this is (as is obvious from the site) a semi-defunct Project; since upgrading to 8, I’ve been concentrating on my others - which, BTW, all seem to Preview well.

I have discovered one possible cause; and have a question, please. Then I’ll do the binary chop you so helpfully advocate. I promise!

  1. One element in the Contact Page is FormSnap 2.1.7; isn’t this for Stacks 2 only? It’s been so long…
  2. Lastly, other than looking at each element in a Project, is there a quicker and reliable way to derive a list of those Addons which it does actually need and use?

Thanks again!