Eliminate the use of temporary files in the vx_config
library
#2691
Labels
component: code optimization
Code optimization issue
priority: high
High Priority
requestor: NOAA/other
NOAA Laboratory, not otherwise specified
type: enhancement
Improve something that it is currently doing
Milestone
Describe the Enhancement
Please see #2690 which is the parent issue derived from the dtcenter/METplus#2364 discussion.
The vx_config library is one major source of the use of temp files in MET. They are used in two ways:
read()
function reads the input line-by-line. Each line is passed through a utility function to recursively interpret any environment variables referenced. The output is written to a temp file and subsequently read back in.read_string()
function is called to do so. It writes the threshold string to be parsed to a temp file prior to calling theread()
function to handle it... which uses its own temp file! So at least 2 temp files are used for each threshold string!This issue is to leverage the
std::stringstream
class to eliminate the use of temporary files in the vx_config library. While the I/O difference may not be obvious when writing to the local/tmp
directory, it will vastly improve performance on the lustre file system used by many HPC's, including WCOSS2 and jet.Time Estimate
1 day
Sub-Issues
Consider breaking the enhancement down into sub-issues.
Relevant Deadlines
List relevant project deadlines here or state NONE.
Funding Source
Define the source of funding and account keys here or state NONE.
Define the Metadata
Assignee
Labels
Milestone and Projects
Define Related Issue(s)
Consider the impact to the other METplus components.
No direct inputs.
Enhancement Checklist
See the METplus Workflow for details.
Branch name:
feature_<Issue Number>_<Description>
Pull request:
feature <Issue Number> <Description>
Select: Reviewer(s) and Development issue
Select: Milestone as the next official version
Select: MET-X.Y.Z Development project for development toward the next official release
The text was updated successfully, but these errors were encountered: