Comments (9)
Hi @rhukster, thanks for your report, please look at #72. Can you verify my results using dev-parser-improvements
branch?
Your test data runs in ~20ms and uses around 10MiBs of memory in my local environment, Blackfire reports 80ms and ~9MiBs, baseline master ran in 12.5s and used 514MiBs of memory. All tests pass so I'm pretty sure it works correctly, but let me know how does it look on your side.
If everything is fine we have over 100x performance gain on time and memory and RegularParser
can be used in all situations without any penalty.
from shortcode.
I can confirm that I've tested the parser-improvements
branch and the test case I added as part of #72 now works, an also the actual issue as reported to in getgrav/grav-plugin-shortcode-core#53 and gantry/gantry5#2426 have also been resolved!
I notice now that when there are no actual shortcodes, the regular
parser is indeed very fast to process the content, in fact, the fastest of all the 3 parsers.
I've not done any comprehensive performance testing on the parsers for actual shortcode work, but it definitely is faster, and I can find no visible issues with my custom shortcodes page I use for testing.
Nice work! 👍
from shortcode.
@rhukster During the verification phase, I managed to reproduce #70 and added the fix to #72. Could you please verify the results again? I promise I'm not doing anything else with the PR, so it will be merged once I get your approval.
Unfortunately, the fix reduces the performance gains I mentioned above, but we're still well above 10x improvement in both time and memory (850ms and 47MiB on Blackfire, 660ms and 46MiB on local environment, for your test data vs the same baseline). Details are described in the PR if you're interested.
from shortcode.
Please see my comments on the PR itself. Alas, the issue has returned with the latest commit, but does seem to be related to xdebug being on. (was this way with stable release too, I just didn't realize it before).
from shortcode.
Update... latest commits in #72 branch again fixes the issue for me.
from shortcode.
If this PR fixed the issue, may I ask you to close it? I will tag the next version soon, I just need to review the commits since the last version and prepare some release notes.
from shortcode.
Ya all good for me...
from shortcode.
Any word on timing for a new release?
from shortcode.
@rhukster I'm very happy to announce that v0.7.0
was just tagged, you can find the release notes here. While I was writing them I found a lot of small things which could be improved, so #73 will probably become v0.7.1
in the near future.
Thanks a lot for using Shortcode!
from shortcode.
Related Issues (20)
- mb_strpos() 3rd parameter is not nullable in PHP 8.1 HOT 2
- [question] Convert content with shortcodes into Json string ? HOT 2
- (question) Also retrieve content outside shortcodes when parsing HOT 3
- Nested shortcodes HOT 4
- facade process not working HOT 3
- On large HTML files, RegularParser does not fire any handler. HOT 12
- regular parser throws exception with `param=0` HOT 4
- Method getParameter returns value with quotes HOT 4
- Large file not firing all shortcodes with Regular Parser HOT 4
- Parse error with Vietnamese characters or open and close tag only HOT 6
- I made a new Shortcode library - Inspired by yours HOT 6
- PHP 7.4 issues HOT 3
- mb_strrpos() 3rd parameter deprecated in PHP 7.4 HOT 2
- Custom Short Codes HOT 3
- Multiple options in one add handler HOT 2
- Nested Shortcode for foreach loop HOT 2
- Is it possible to use this without composer? HOT 5
- Is there any built-in method to strip all shortcodes in provided text ? HOT 4
- Issue with Nested shortcodes HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shortcode.