Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Titan » A more enjoyable, productive and resource efficient way for working with TTCN-3(Improving productivity on the compiler level)
A more enjoyable, productive and resource efficient way for working with TTCN-3 [message #1843480] Mon, 02 August 2021 05:56 Go to next message
Kristof Szabados is currently offline Kristof SzabadosFriend
Messages: 60
Registered: July 2015
Member
Dear all,

We are glad to announce that our article on the Java code generator feature of TITAN was published:  https://www.researchgate.net/publication/352705416_Improving_productivity_in_large_scale_testing_at_the_compiler_level_by_changing_the_intermediate_language_from_C_to_Java

Short background:

We have extended the TITAN compiler to use Java as an additional intermediate language, besides C/C++.
We kept as much of the architecture as Java allowed.
In the examples we investigated, from the exact same input (source code) the build produced executables which read the exact same configuration files, produced the exact same functional behavior and generated the exact same logs.
The Java side mostly run faster, did full builds several times faster, incremental builds magnitudes faster ... and being a more productive environment overall.

What this means for you:

For the developers/testers, this could mean a great improvement in how their daily work feels like.
Let's consider a situation where someone makes a modification and wants to check what effect that has during execution (building the project after the change + executing the binary, to check the effect).
For the example project, the duration of incremental build dropped from ~30 seconds (on the C side) to 0.1 - 0.8 seconds (on the Java side) ... turning a process that could disrupt the workflow and push people out of their flow, into what could feel instantaneous.
For many projects, it could be possible to turn on the automatic build in Eclipse. The time required, from saving the modified files to clicking on the launch icons or pressing the keyboard shortcuts, might be enough for the system to do an incremental build in the background.

For project managers, this could mean a huge reduction in time wasted on waiting.
In the end, the time spent waiting for the compiler to do its job, is most of the time, not time spend productively.

It might even be possible to save on hardware resources.
In the case of the large project we experimented with, we have seen an ~ 25* lower resource need in server environments.
That is, the exact same server machine, that had to be used exclusively to build a project on the C side, might be powerful enough to handle ~20 different Java side builds at the same time. Or, if you currently need 20 servers to support your developers/testers with the C side builds, that could drop to 1 or 2 using the Java side build process.
Please note, that at the time of our experiments the Java side was in early development, by now it might have even more support and even better performance.

For the technical details please check out our article: https://www.researchgate.net/publication/352705416_Improving_productivity_in_large_scale_testing_at_the_compiler_level_by_changing_the_intermediate_language_from_C_to_Java

Best Regards
Kristof Szabados

#ImprovingTestersLife
#ReducingWastedTime
#BetterHardwareUtilization
#50TimesFasterFullBuild
#MagnitudesFasterIncrementalBuild
Re: A more enjoyable, productive and resource efficient way for working with TTCN-3 [message #1843525 is a reply to message #1843480] Wed, 04 August 2021 08:25 Go to previous messageGo to next message
Olaf Bergengruen is currently offline Olaf BergengruenFriend
Messages: 127
Registered: November 2018
Senior Member
Hi Kristof,

I assume this interesting for new projects, right? For test systems running since years using very complex codecs, external functions and ports implementations written in C/C++, these systems would need a considerable effort rewriting the adaptation, right?

Regards,
Olaf
Re: A more enjoyable, productive and resource efficient way for working with TTCN-3 [message #1843530 is a reply to message #1843525] Wed, 04 August 2021 20:21 Go to previous message
Kristof Szabados is currently offline Kristof SzabadosFriend
Messages: 60
Registered: July 2015
Member
Hi Olaf,

I would not think in the old - new dimension. You could have some simple old tests that can already be supported, or start a new project needing some codecs not yet available for the Java side.

May it is better to go along the "what is needed to make the conversion" path.

1)
The first group of needed components could be the ones provided by TITAN (codecs, testports, etc...)

These will be supported in time ... but we need information from you on how to prioritize the work.
For these I urge you, to try out the tool and create a list of codes and testports, that your tests depend on (from those that TITAN is offering) and is not yet supported, and contact the developers/management.
They will need to know:
- what you need to be ready
- Your priority for these items.
- by what time would you like to have them available.

TITAN comes with 100s of parts that need to be supported (codecs, testports, protocol modules, etc...).
Some of them are already supported, for the other help in prioritizing them is welcome.
Knowing the above information, will help the developers to decide how to order the work (or even if more developers should be allocated for this work).

2)
There are also parts that might have been developed on your side, like external functions.

If you are inside Ericsson it might be possible to offer Support as a Service for converting those parts too.
But, they should be relatively easy to convert on your own too.

One of the main design decisions for the new system was to keep as much of the original architecture as possible, to ease such conversion work.
(and for those external functions we have already encountered, it really was a simple task. We could rewrite them almost in a line - by - line fashion).

Also, feel free to ask questions here.

Best Regards,
Kristof
Previous Topic:Custom encoding name with spaces is not compiled
Next Topic:Communicate Rise V2G with raspberry pi
Goto Forum:
  


Current Time: Sat Oct 05 09:01:56 GMT 2024

Powered by FUDForum. Page generated in 0.03727 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top