I recently dusted off an artificial neural network project, now published at https://bitbucket.org/egrange/daneuralnet/. This is a subject I’ve been dabbling on and off since the days of 8 bit CPUs.
The goals of the project are twofold: first experiment with neural networks that would be practical to run and train on current CPUs, and second experiment with JIT compilation of neural networks maths with Delphi.
TensorFlow and Python are cool, but they feel a bit too much like Minecraft, another sandbox of ready-made blocks 😉
A new version 1.8.1 is available from the SamplingProfiler page.
This minor updates fixes the displayed source code for samples gathered on a generic method (“Show Source Location” option) and other minor fixes.
Work and processing classes are typically short-lived, created to perform one form of processing or another then freed. They can be simple collections, handle I/O of one kind of another, perform computations, pattern matching, etc.
When they’re used for simple workloads, their short-lived temporary nature can sometimes become a performance problem.
Version 1.8.0 of SamplingProfiler is now available.
The options dialog now support Delphi XE2 & Delphi XE3 search/browse paths, other changes are only indirect fixes/improvements related to the components and libraries used in SamplingProfiler.
Just committed to the SynEdit SVN a few enhancements:
- much improved performance for long & large files,
still not quite notepad++-class just yet, but my profiler tells me there are many juicy low-hanging candies left 🙂
- improvements to the TSynGeneralSyn highlighter (single & double quote mode, token callback, and a few other niceties)
- DWScript syntax highlighter has been moved to the SynEdit SVN, the copy in the DWScript SVN will no longer be the primary reference
edit 27/12: committed another optimization, AFAICT, when working on large files, SynEdit is now faster than the Delphi IDE code editor and *way* faster than Scintilla/notepad++ 126.96.36.199 (with and without a syntax highlighter like DWS’s)
Version 1.7.7 of Sampling Profiler has been released, you can grab it here (642 kB), this version fixes the following issues:
- Fixed gathering of samples in Monte-Carlo multi-threading mode.
- Fixed crash when closing a results page with Ctrl+F4.
- No longer restores to maximized or minimized state.
You can now download SamplingProfiler 1.7.6 (642 kB), version highlights are:
- Fixed support for Windows 7.
- Cosmetic tweaks, and fixes to the filter functionality.
- Compiled with Delphi XE.
Thanks goes to Dan Bartlett for the suggestion that led to the Win7 compatibility fix!
As you may be aware, for and unknown reason SamplingProfiler doesn’t work under Windows 7, the technical details as to what doesn’t work under Windows 7 are in this stackoverflow question:
GetThreadContext fails after a successful SuspendThread in Windows 7
DWScript includes a debugging facility, in the form of the IDebugger interface. The TdwsSimpleDebugger component implements that interface and can be used to simply surface the events.
I recently bumped on a post by François on FieldByName performance, and was bit surprised by the magnitude of speedups reported by Marco Cantu in a comment: