well, I am not a developer myself (just a bit playing around to understand how OJS 3 works - I am sure you have done much more than me in this regard ). I am happy to discuss these things, so I know what I can do better.
I am not sure if there really is a perfomance issue. I only have a test installation with some test journals to work with (there are still too many issues to upgrade our productive systems). So far I never had any trouble to get all articles displayed in my productive system, so I thought it wouldn’t be an issue.
But as I said, the original plugin worked different than mine, because the author created a cache file to store the keywords. I don’t know if this was done, because there were performance issues or just as a precaution. I wasn’t so happy with this solution, because it takes a few days to show new keywords on the journal sites. But I am also not sure, if I like your solution better. You would only retrieve the keywords of 20 articles - am I correct? In my opinion it wouldn’t represent the keywords in a right way. Some very important keywords, might not be displayed in a prominent manner or might not be displayed at all, just because they were accidentally not in the articles you retrieved.
What do you think?
I have to say I will gladly change the plugin if this helps performance, but I would like to wait with these changes until I have something to do with the keywords. As long as I cannot search for them or browse them, the plugin is pretty much useless.