Gnucash nytprof file

Jed Diem jed at tulane.edu
Tue Oct 27 18:15:00 EDT 2015


Erik,

Great.

The 21 seconds looking for Encode plus the LibIDN  42 seconds is right 
on the 63 seconds the "Checking Finance::Quote" message is on the splash 
screen

I'll do the at least the first install you suggest, but not before I 
back the system up.  To do that I'll have to go into town to get a drive 
(I'm vacationing in Colorado)  Will do that tomorrow and do the install 
in the afternoon.

More later.

Thanks and regards,

--jed




On 10/27/15 2:56 PM, Erik Colson wrote:
> Jed Diem <jed at tulane.edu> writes:
>
>> I've attached the Gnucash nytprof file.
>>
>> In looking around both a gnucash.trace file and gnucash.dtruss file
>> for patterns,  I found the following which may or may not be
>> interesting.
>>
>> In a gnucash tracefile,  74532  instances of "Attempt to open or write
>> to a disabled transaction log."
>>
>> In gnucash.dtruss,  4538 files not found errors.  16 either "LibIDN.pm
>> or LibIDN.pmc instances", 1652 "dylib" instances and 2886 other files.
> Hi,
>
> So we are getting closer. I've attached a capture of the time spent in
> loading perl module IO::Socket::SSL.
>
>
>
> You'll see that your system spent 21s in line 253
>
>      if ( eval { require Net::IDN::Encode }) {
>
> and 42s in line 255
>
>      } elsif ( eval { require Net::LibIDN }) {
>
> As you've already detected with dtruss neither of those is installed on
> your system. For some reason those 2 checks take ages.
>
> The version of IO::Socket::SSL included on your system is ageing. Both
> checks have been removed in current version of the module. I have a wild
> guess that the problem you experience might be the reason for that. For
> reference, this is the current version of the BEGIN block that contains
> the problem:
>
> BEGIN {
>      # import some constants from Net::SSLeay or use hard-coded defaults
>      # if Net::SSLeay isn't recent enough to provide the constants
>      my %const = (
>          NID_CommonName => 13,
>          GEN_DNS => 2,
>          GEN_IPADD => 7,
>      );
>      while ( my ($name,$value) = each %const ) {
>          no strict 'refs';
>          *{$name} = UNIVERSAL::can( 'Net::SSLeay', $name ) || sub { $value };
>      }
>
>      *idn_to_ascii = \&IO::Socket::SSL::PublicSuffix::idn_to_ascii;
>      *idn_to_unicode = \&IO::Socket::SSL::PublicSuffix::idn_to_unicode;
> }
>
>
> In conclusion, I can figure two possibilities to solve your problem:
>
> - install the first missing module
>
>    cpan -i Net::IDN::Encode
>
>    That way the first check should succeed and the second check won't be
>    reached. If this solves the problem you don't need the second option.
>
> - upgrade IO::Socket::SSL
>
>    cpan -i IO::Socket::SLL
>
>    but this might brake your system, as you are messing with the system
>    perl modules. If you go this way, I recommend that you have a recent
>    backup of your system, and be sure you can restore it!
>
>
> Keep me informed !



More information about the gnucash-user mailing list