Comments (3)
Associated update complete
from nppexec.
There were a lot of changes in NppExec during this month, and I believe now the plugin is in a release candidate state.
The built-in RegExp-based filter for compiler error messages is disabled by default to avoid an impact on performance.
It is recommended to enable this filter locally, right before running a compiler or an interpreter: "npe_console local -- x+".
Do you have any changes to the regular expressions used by this filter?
from nppexec.
By the way, I've made some performance tests to understand why the all-in-one compilation script (that you initially created) requires noticeable time to be executed.
The short answer is: use npe_console -
to disable the output and to make it very fast.
The longer answer is: the CScriptEngine itself is fast enough, but the Rich Edit control (responsible for all the text in NppExec's Console) is sooooo slooooooow...
Here is a simple example. Consider the following NppExec's script:
npp_console ?
npp_console -
npe_console local m+
:1
goto 1
If you execute it as is, it is lightning-fast, it shows "GOTO was performed more than 10000 times" almost immediately. This is the performance of the CScriptEngine itself.
Now, let's close NppExec's Console and modify this script:
npp_console ?
//npp_console -
npe_console local m+
:1
goto 1
This second version prints "GOTO: 1" to a hidden RichEdit window 10000 times. You might think that a hidden RichEdit window should not take much time to repaint itself while adding these lines, but in reality this version takes much longer than the previous one! This is the performance of the CScriptEngine plus Rich Edit control.
I also did some profiling using Visual Studio - and most of the time is indeed spent within the Rich Edit control!
Here is the profiling statistics:
Function Name Total CPU [unit, %] Self CPU [unit, %] Module
| - ConsoleDlg::RichEditWndProc 4556 (44,06%) 24 (0,23%) NppExec.dll
| - CNppExecCommandExecutor::BackgroundExecuteThreadFunc 1538 (14,87%) 0 (0,00%) NppExec.dll
| - CNppExecCommandExecutor::ExpirableCommand::Execute 1538 (14,87%) 0 (0,00%) NppExec.dll
| - CNppExecCommandExecutor::OnDoExecDlgCommand::subExecute 1533 (14,83%) 0 (0,00%) NppExec.dll
| - CNppExecCommandExecutor::ScriptableCommand::OnDoExecDlg 1533 (14,83%) 0 (0,00%) NppExec.dll
| - CNppExecCommandExecutor::RunScriptEngine 1490 (14,41%) 0 (0,00%) NppExec.dll
from nppexec.
Related Issues (20)
- Notepad++ v8.4 and beyond (inclusive 8.4.2) CRASHES or doesn't work properly when applying a color on selected text using NppExec. HOT 9
- Techniques to restore cursor position within Notepad++ file HOT 2
- SCI_REPLACE has problem matching the beginning of line HOT 6
- Changing N++ themes results in error HOT 4
- Please add support for theme. I am using version 0.8.2 and the console is white. HOT 1
- Ipython does not have auto-indentation and colour for keywords. The same things work fine in normal command prompt. HOT 5
- encoding characters error HOT 2
- CAnyRichEdit::AddStr() is very slow and should be optimized HOT 1
- Search index for online version of NppExec Manual HOT 14
- How to clean HOT 1
- How to clean up/delete the list saved in F6 HOT 1
- [HTML docs] External links are not navigable HOT 4
- There is something wrong with the console output encoding. HOT 2
- How to get current dir name only (not full path) HOT 2
- License? HOT 4
- XBrackets release accidentally added to this repo? HOT 2
- Double clicking line in console output jumps to the first tab ocurrence if you have multiple tabs open with different files of the same name HOT 4
- im trying to compile a qc file and its saying : ERROR:bad or missing options HOT 1
- Issues getting NppExec console to work with Python's getpass module or third party pwinput module HOT 2
- Notepad++ dev build NPP_OPEN fails HOT 5
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 nppexec.