blob: 994ccad634785d06c474b03a98ef7cc4939e68d1 [file] [log] [blame]
###############################################
# working features but requiring optimization #
###############################################
* all autogenerated xs methods that return char * are now using
sv_setpv() which always copies the string. See if we somehow can
avoid the copy. If we do so, we need to be careful with method which
take a pool argument, such as:
Apache::ServerUtil
- mpxs_Apache2__ServerUtil_server_root_relative
Apache::URI:
- ap_construct_server
- ap_construct_url
APR::URI
- mpxs_apr_uri_parse
Apache::Util
- ap_ht_time
- escape_path
for which we need to attach the pool object used to create those
strings as a magic.
* optimize modperl_callback_current_callback_(set|get) to use
numerical equivalents of the phase names, instead of doing expensive
memory allocs and string comparison operations. And only give the
real string in the perl get API.
* consider using the temp pool for things that are needed only during
the configuration and can be dropped before the actual serving is
started. that pool gets destroyed right after the post-config phase
is over.
* currently when ithreads-enabled perl is used anon-sub handlers are
always deparsed and non-cached. there are several cases when this
can be optimized. See modperl_handler_new_anon in modperl_handler.c
* modperl_package_unload() and modperl_xs_dl_*() share some duplicated
logic. The managment of DynaLoaded modules could be somewhat cleaner.