64 bitness

Richard Gaskin ambassador at fourthworld.com
Sat Jan 10 16:16:49 EST 2015


Mark Wieder wrote:

> Phil-
>
> Saturday, January 10, 2015, 12:30:41 PM, you wrote:
>
>> Is there any possibility there will be a 64-bit server version of 6.7.2,
>> or is the 64-bitness for building iOS apps only? A 64-bit server version
>> would be wonderful for Dreamhost users like myself (assuming it would
>> run at speeds typical to 6.x, and not at 7.x speeds).
>
> Don't know, but I do note that there are 64-bit servers for the 7.x
> builds. Does that help any?

It gives us half of the solution we need, but unfortunately it's like so 
many other cases in life where half a solution isn't a complete solution.

The remaining issue is performance.

Thanks to Malte's testing initiative, we've identified several areas 
where v7 needs to be optimized to bring it up to performance parity with 
v6.7.  The team is working on that now - kudos to RunRev's recent hire 
Peter B. for his help stewarding the benchmarking effort.

On the desktop the difference is often negligible, but a server 
environment is a harsh mistress where performance is critical and has 
implications for load handling that can impair scalability.

There are two sets of performance issues with LC v7 on a server: runtime 
and startup.

At runtime, we can see in faceless mode pretty much what we can see in a 
GUI, that the wonderful job they've done with Unicode support requires, 
as we expected, more time for encoding checks and coersion.

Additionally, the area we're less likely to care about in a GUI, and 
which matters a lot for any CGI, is startup time.  Peter B. has 
confirmed something I found running LC with strace, that the init 
sequence is spending way too much time on font stuff.

For many versions now we've had the ability to generate graphics from 
the faceless engine, which is nice when you need it but most CGIs don't.

So one option might be to provide a flag for turning off graphics 
handling, and thus bypassing all such initialization with fonts and more 
altogether (hopefully along with removing some of the unused flags that 
are still reserved, as noted in the bug report you filed a while back).

But that would be a last resort.  Right now there's a sense that they 
should be able to speed up init time without having to make us decide 
whether or not our CGI will need graphics support.

So the startup stuff I'm not too worried about, even it is is perhaps 
the largest noticeable difference in overall CGI throughput right now.

Once that's done, it's a far more challenging task to get core 
operations working at 6.7-level speed, things like chunk expressions, 
array split/combine, some aspects of file I/O, and more.

Transparent Unicode handling is a beautiful thing, and no one expected 
it would be both feature-complete and highly-optimized in the same 
build.  Optimization will take some time.

But how much time is the question.

I had suggested they consider a 64-bit build of v6.7 for Linux and 
Server (I tend to use mostly standalones for CGI), but after reviewing 
the prospect the team felt that it would be too much effort for a 
version we all hope will be short-lived.

That said, it can only be short-lived to the degree that we can optimize 
v7, so until I hear more about the optimization effort it seems we're in 
a chickens-and-eggs situation:  we want to have the smallest number of 
builds to maintain and test (ideally just 7 & 8 for a while), but we 
need to be able to handle the same work we've done with v6.7.

Of course I'll relay here any news on optimization as I learn more....

-- 
  Richard Gaskin
  LiveCode Community Manager
  richard at livecode.org




More information about the use-livecode mailing list