Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Slowness with Strawberry Perl post-2009 (!) versions?

Jul
532
10
This is driving me crazy.

BACKSTORY: Had 2 power failures, end-result was SSD drive corruption despite having a UPS, $32 in cable loss, and restoring a 3-day old Windows Backup.

Everything was fine... Except perl.

Installed Strawberry Perl's latest 2024 version rather than the 2009 version I'd been using.

Ugh. Instant scripts are reallly slow. Turns out there's a 3.2 second startup on a "hello world!".

Revert. Problem gone.
Try 12/2023 version. Problem back.

At this point, I'm well over an hour into this. But I find out more!

This odd 3.25-second slowdown (which compounds with multiple script piping) ONLY happens in TCC. And ONLY for Strawberry perl version possibly greater than "2009" or definitely the "2023/13" and "2024 latest" versions. (Sorry, I think in dates rather than version numbers.)

So out of all 6 of the combinations of [TCC, CMD, PowerShell] * [Strawberry perl 2009, Strawberry perl >=2023], it's only TCC + Perl >=2023 that creates this excessive startup delay.

One of the reasons I still use perl for some stuff is that Python's startup time is quite poor in comparison, so I try not to use it for commands that use piping.

Went back to 2009. Then remembered why I want to upgrade. 2009-Perl can intput and output emoji just fine, but it just cannot take emoji as an $ARGV. It's nuts. But also, 2009-Perl is pretty antiquated. I'd like to upgrade it, but every time I do, I get this delay problem.

And I just can't figure out how to fix it.

p.s. No PERLIO environment variable set. Have also tried all permutations of chcp 437|65001 and option //utf8|unicodeoutput=Yes|no
 
It looks like passing emoji as arguments into Perl is a "real" thing:

So maybe i have nothing to gain and should just stick with my 2009 version.

Still — it's weird that it's a TCC-only problem.
 
On my Windows 10 system,
under Virus & Threat protection,
Exclusions,
I have an exclusion for tcc.exe,
and an exclusion for the TCMD33 folder,
which I manually update after each upgrade.

For me,
TCC works faster when it is excluded from Virus & Threat protection.

Joe
 
I do that already :) It's definitely a best practice!!
 
@ClioCJS, do you have a Perl from Cygwin64? I have a Gnu Perl (64) that came with "Oracle". Is there a simple test to see if it does what you want?
 
I need Strawberry perl, not cygwin's perl, sorry.

But fwiw, cygwin's perl doesn't have the delay that Strawberry perl later versions ONLY have with TCC and not other command lines.

I do wonder what it could be, but i reverted to my 2009 perl. It's been stable at running my modules ever since, and i don't have regression testing, so i avoid change. This was my one try since 2009 at upgrading and I had to NOPE my way out of there unfortunately.

That's okay. I do most stuff in Python these days. The simpler stuff i do in Perl is likely to need a Perl version past 2009.
 
Back
Top