Firebirdclient and Select statements are slow for no reason - firebird

I have a .Net 4.6.1 Winforms application which has more or less 10 years.
It has worked pretty well since the beginning, but in the last few weeks I faced a problem I never had.
Firebird 2.5 (latest version available)
.net client (latest version available)
Visual studio 2015 or 2019 (in both versions, same problem)
Now, the application, when is about Firebird, calls a sequence of select statements in order to load a dataset. It works well, as usual, as it always worked. Since few weeks, the whole sequence of select statements is slow, tremendously slow.
What do I mean with slow? It usually takes 5 or 6 seconds in my PC to load the whole set of data, now it takes 70 seconds, with no reason. Nothing has changed in the architecture or sequence, nothing was added or removed from the environment.
However, I don't know why, the release version of the software is fast as it was originally, so I don't really get where the point is here.
I have a debug version in Visual Studio which is slow at loading the data using a set of select statements, and a release version which is fast as usual.
Now, when I first realized that the software was running very slow, I upgraded the whole set of Firebird components to the latest versions, but had no joy. I was still using old versions because I had no real reason to upgrade: "does it work? Don't touch it!"
In the release version I use the embedded Firebird version, because I have to redistribute the application. In the debug, the server version, so I can manage the database with IBExpert and run the software together. It has always been like this since ages.
So, I'm looking for a suggestion, because I have no idea where or what to look for.

I fixed this odd behaviour by setting Pooling=true in the connection properties

Related

Development status of BIRT reporting Framework?

Very little has changed in a while for BIRT. Since the project seems still heavily used, it would be interesting to know if there are future plans and if so, what is entailed in those plans. Subsequently, based on the development status: Is BIRT still a safe platform to base development on or is it expected to just be conserved in the current state such that occuring bugs probably won't get fixed?
We decided to use BIRT instead of Jasper 8 years ago.
We are still using 4.2.1 for development and 4.3.0 for production runtime.
I reported several bugs since then and only very few of them got fixed.
Furthermore, I developed some patches to enhance the word emitter output - with no reaction from any one at all.
I also developed a patch to allow kind of a vertical tab (to place something at a fix y position on the page (but not in the page footer). With my previous experience of the community, I did not publish that one.
I can say that while the source code is quite easy to read, it is nevertheless almost impossible to understand what is actually going on, because the functions are extremely deeply nested.
My conclusion with 8 years experience of using BIRT for production:
PROS:
BIRT is very powerful and flexible, you can achieve some very cool results.
The quality of the resulting PDFs.
There are only very few things I miss and cannot work around.
The runtime engine is very stable and fast enough, very few problems.
The community is helpful.
CONS:
From an open-source perspective, it is one of the weakest projects I know of.
New versions tend to introduce more bugs than they fix.
Bugs, ideas and patches from the community seem to be ignored most of the time.
Lack of internal code quality and documentation.
Update Dec 2021:
BIRT is back again!
The open source project is quite busy (see answer by Alexander Fedorov) and every help is welcome.
It looks like there will be a new release soon.
Until then, building BIRT yourself (with Eclipse 2021-09 and Java 11) has become quite easy thanks to the common effort of the community.
Metadata and information about the health of an Eclipse project can be found on projects.eclipse.org:
The Birt project is still alive, but not as active as before:
there has been only one release per year since 2016 and
in the last three months there have been more than 20 commits from 11 contributors.
Like all open source projects, the success of the project depends on participation. Therefore, I encourage everybody to report bugs and propose changes to Birt and other open source projects.
Update: Good news, Eclipse Birt has been rebooted. It is under active development again, there have been more than 100 commits in two and a half months and the release 4.9.0 is scheduled for March 16, 2022.
The Eclipse BIRT project has been restarted recently, and we are working to prepare Eclipse BIRT 4.9 release.
Contributors are very welcome. Here is the brief instruction regarding steps how to join this effort: https://eclipse.github.io/birt-website/docs/community
Latest versions of BIRT are not available in maven.

Is 'foreach' still bad in 'modern' unity ( >= 5.4.x)?

Historically, one of the taboo constructs in Unity3D was the use of c# foreach block because each iteration of the loop would consume a few bytes of data uncessarily.
Curious if that's still the case on modern releases?
My Googling and (very rudimentary) testing is coming up with non-conclusive results and I'd like to leach off of someone else's knowledge here rather than dive into low-level benchmarking myself. :-)
Has anyone poked at this recently to determine if it's still necessary to avoid foreach in Unity3D?
No, foreach is no longer bad in 'modern' unity but the fix is not yet fully released.
It was first fixed on a special build Unity Patch 5.3.5p8 on early July, which you can get from here. This is a special Edition you must get to receive that fix.
Now, Unity upgraded their compiler to Mono 4.4 on Unity 5.5 beta release which is not yet final release. It fixed the foreach problem. Once this version is released in the coming months, foreach memory allocation will be a thing of the past. You can still download for testing purposes but don't release a game with a beta build.
Scripting: Upgrade C# compiler to Mono 4.4. The new compiler still
targets C# 4 and .Net 3.5, but provides better performance and many
bug fixes.
It is now fixed but the fix is still in beta mode.

Relationship between Eclipse, Aptana, PyDev, and LiClipse

I've been going nowhere but in circles trying to understand the odd relationships between and varying levels of "standalone-ness" of these tools.
I've been using Aptana Studio on OSX for about 4 years and been happy with it, however my recent update to 3.6 blew up so many things I ended up rolling back to 3.4 just so I could work.
For better or worse, I do like Aptana, but I'm not bound to it and am now very frustrated with the latest version, specifically that all the python stuff went haywire. Searching for help is painful, as threads and advice are many years old.
So, in way of questions:
can anyone explain the relationship between Eclipse, Aptana, PyDev, and LiClipse? And more importantly:
a recommendation that meets the following criteria
What I need/want is:
something free and open source
with a current and active community
easily themeable with dark colors so I'm not staring at the sun 8 hours a day
tight python features (pep, pylint, ability to jump to references with a keypress, etc)
tight html/css/javascript features
Like I said, I do like Aptana, just frustrated in the apparent lack of a current community and how it seems to be falling apart.
Well, I'm not sure this is a good question for stackoverflow... anyways, I'll try to explain how it goes:
Aptana Studio 3 is an IDE which is currently supported by Appcelerator. Their main focus is currently on supporting the Appcelerator mobile platform (actually that's Titanium Studio, but Aptana Studio 3 is the basis for it -- the languages they aim for are html/css/javascript, which is what's needed for Titanium)... Although they do integrate a pretty old version of PyDev too (as PyDev requires a newer java whereas they're still on an older version of Java, so, I guess it's currently hard for them to keep it up to date).
Back in the day, they supported the development of PyDev, but decided to stop that support some time ago -- there's a bit more history at: http://pydev.blogspot.com.br/2013/03/keeping-pydev-alive-through-crowdfunding.html.
After that, LiClipse (http://www.liclipse.com/) was created out of my frustration to support dark themes and have support for more languages (it was a crowdfunded project -- it should've been an open source project, but didn't reach its goals for that, so, in the end it's closed source, and its revenue is a part of what keeps the PyDev development going on).
And at last, Eclipse is the basis for both platforms -- so, external plugins should integrate nicely into any of those.
Now, on the recommendation front:
LiClipse should meet your dark/python/html/css/javascript issues (its focus on the editors front is on being dark-themed/lightweight and easy to add support for new languages), but it's not completely open source (some parts of it have been made open source though: http://www.liclipse.com/text).
Aptana Studio 3 should still work and give support for the dark/python/html/css/javascript too, but given that they have to convert some things from the PyDev Java to its own version, Python support is always a bit outdated (as for the current community/support, I can't really comment, but I guess you should be able to report problems to them to try to solve the issues you have).
And the other choice (which may be a bit more work to configure) would be using a bare Eclipse and installing PyDev and separate plugins for html/css/javascript (it seems there are multiple available, but I can't really comment on any of those).

Why does Ubuntu 14.04 stick with (old) Eclipse 3.8 when 4.3 is out?

Ubuntu is usually a cutting edge distro. But why does it stick to a 2011 version of Eclipse when we are 4 years into 4.x development?
It's not even optional and cannot be installed from the repositories. And it's not 'easy' from a download either. For some reason, the Java SE 7 reference implementation, OpenJDK, is not enough, and you need the Oracle version. Why? This isn't available from the repo's either, and you need some weird untrusted 3rd party repo for that or follow a whole chapter on how to install it yourself.
There were problems three years ago. When Juno 4.2 came out, it had a lot of performance issues. Eclipse Director Mike Milinkovich explains one of the reasons is lack of funding. For the first time in a major release:
"The performance test were turned off because the Eclipse platform team has a serious resource issue."
For that reason, developers released unnamed and unpromoted version 3.8 simultaneously with 4.2 to bridge the gap for this (hopefully) temporary problem, and it's popularity caused a notable trend downwards amongst developers. As one Eclipse b3 developer mentioned:
"I was stunned by the performance improvement after the switch. The 3.8 platform is much MUCH faster"
The 3.8 release is still a popular alternative to the 4.x branch among developers (ask my colleagues or google), I think mainly because of (genuine) trust issues. But the bridge (read: support for 3.8) has closed now that 4.3 is released.
The core problems (funding and developers) have not been fixed though, as seen by Google's gesture of donating money to the Eclipse Foundation in the hopes that other companies will follow suit. Does this mean that 4.3 is still not up to par with the 3.x standards?
This is not a problem with a plugin or a feature for a specific language, this is a problem within the core of the platform itself. (But I'm using WST with Javascript and V8 plugins for PHP and Node development in particular.)
This is not a specific platform problem either. There are similar complaints from Linux, Windows, and OSX users. (But I'm using Linux (Mint 13).)
On the one hand you have people telling the EOL for 3.8 "proves" that 4.3 is fine now. On the other hand (see comments):
"I've moved back to 3.8 due to constant crashes on ubuntu with 4.3"
3.8 is far from problem-free and I wouldn't mind to get a smoother development experience. So I am wondering, why is Eclipse 4 'kept from us' by the people who decide what software versions are 'good for us' (AKA what goes into the official repository)?
lucid (10.04 LTS)
Eclipse 3.5.2-2
precise (12.04 LTS)
Eclipse 3.7.2-1
raring (13.04)
Eclipse 3.8.1-1
saucy (13.10)
Eclipse 3.8.1-4
trusty (14.04 LTS)
Eclipse 3.8.1-5.1
utopic (14.10)
Eclipse 3.8.1-5.1
Update 2014-05-30: I just tried Kepler (again) and it still suffers from UI glitches out of the box. E.g.:
And no, changing the inactive window toolbar background color in preferences does not fix this. (Even if it would, this would be a silly default choice).
I would like to know, from someone who is not positively or negatively biased because of their own highly specialized and tweaked workflow - preferably from someone with experience in the Ubuntu package maintaining process for non-trivial packages - why this decision is made by a team of professionals who know what they are doing for the most widely used Linux distribution out there?
Eclipse Juno was released 2012-06-27. On 2012-07-17 a bug concerning the responsiveness of the UI was reported. Four months later, around 2012-11-14 the first patch was released to the official update-site.
Many users, however, completely missed the release of the patches. I assume the information drowned in the FUD, and other more important news, that was spread around that time. At the end of 2012 I posted an answer on SO. Apparently I was not the only one for whom the patch fixed this performance issue.
On 2013-02-22 Eclipse 4.2.2 was released, which contained the same patch, yet I kept receiving upvotes for my answer on SO until June.
Probably the only known fact among developers is that Eclipse had serious performance issues at some point. However, the knowledge about scope, magnitude and duration of these issues seems to me like a series of common misconceptions.
There was a four months period during which it was a good idea for many Eclipse users to stick with the 3.8 branch. I say "many" because I worked with 4.2.0 and 4.2.1 and it was O.K. for me. Subjectively, switching tabs was about two times slower and the IDE froze maybe once a day for a couple of seconds. For colleagues of mine the problem was much more severe. I assume it depended on your setup and on your workflow, however, I never felt like investigating further because I knew the platform developers were working on the issues, and there was a good fallback, using 3.8.
One year and three Eclpse releases later these serious performance issues are still fixed.
Of course, this doesn't mean that there are no more performance issues. As of now I find 1979 reports in the Eclipse bugzilla with the keyword "performance". This doesn't mean that Eclipse is very buggy, but only that it is very well documented and open. Whether or not you are affected by any of these issues, again, depends on the setup, the plug-ins you are using and your workflow. I am a Java, plug-in and EMF developer. I work with medium to big work spaces (~1M LoC), and Eclipse 4.3.1 is fast enough. The 3.8 release is not an option for me because as Eric said, it won't receive all of the important updates. People will still continue using it in the future. Many of them will also continue using Internet Explorer 5.5.
If you try the 4.x branch and notice any performance issues, please report them, but be specific about your setup.
From the official Wiki page:
Several major performance defects have been addressed in Juno SR2
(4.2.2). Community members have confirmed that these fixes
substantially address the performance problems with editor and view
opening, closing, and switching. These fixes are widely available in
Juno Service Release 2 (February 2013). All defects are also resolved
in the Kepler (June 2013) release stream.
new Features
Your statement "3.8 release was specifically released as a faster and more stable alternative to 4.2" is clearly incorrect; 3.x has gone into its 'end of life' maintenance and was most certainly not released as an alternative to 4.x.
While folks are welcome to continue to use the 3.x stream if it suits their needs please recognize that as the various projects move forward there will be significant divergence in the features available between the two versions...

migrate filemaker 6.5 app to 12 - coding requirements?

I've been given a request to upgrade an application running under filemaker pro 6.5.
It's connected to some serial devices and uses plugin-component (troi) to solve the communication (rs232).
It's running in a closed network attached to a remote FM65-database.
Will FMP12 be able to run the application w/o a lot of recoding or has things changed too much?
Regards,
/t
Simple answer, yes.
First of, there was no FileMaker 6.5. It went from version 5 to 5.5. to 6 and then 7. When version 7 was released there was a major update in fileformat for the databases, introducing multiple tables in a singel file and a new relationship schema.
Between version 11 and 12 there was another big update in fileformat. The bigest change being that the layouts are now rendered as HTML/CSS using WebKit.
Even though a lot has happend since version 6 FileMaker Inc always try to be backward compatible. As far as I know, no functionality has been removed, at least nothing vital.
Troi Serial Plugin works with FileMaker 12 but you will need to upgrade the plugin. you can read more about the changes for the plugin, pricing and download a demo at
http://www.troi.com/software/serialplugin.html
You can also download a 30 day trail of FileMaker from http://www.filemaker.com
Thus you can easily try the entire setup for free before doing it for production.
The only thing you probably will have to adjust is the function call for the plugin Troi Serial, but that should be easy!
Hope this helps
I'd recommend you use Metadata Magic to analyze the FP5 solution.
There are some script steps that can be problematic when upgrading. This will give you a comprehensive report of what issues to look for and where to find them. It's not uncommon to find script steps that need to be reordered or changed.