Gnucash nytprof file
David T.
sunfish62 at yahoo.com
Tue Oct 27 17:22:34 EDT 2015
Erik,
Congratulations! That fixed it for me. Specifically,
cpan -i Net::IDN::Encode
reduced the startup time of F::Q to less than a second. It also reduced the size of my trace file by more than half from 19Mb to 7.1Mb (I still have hundreds of references to the disabled transaction log, though).
Cheers,
David
> On Oct 27, 2015, at 4:56 PM, Erik Colson <eco at ecocode.net> 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.
>
> <Screen Shot 2015-10-27 at 21.02.00.png>
> 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 !
> --
> erik colson
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.
More information about the gnucash-user
mailing list