Issues

Select view

Select search mode

 

regression: directoryList is sllloow on unix systems

Fixed

Description

there's some huuuge performance regression on docs
https://github.com/lucee/lucee-docs/actions/runs/8648128224/job/23711210824#step:7:298 6.0.2.1-SNAPSHOT 3.4s
https://github.com/lucee/lucee-docs/actions/runs/9873420804/job/27265642463#step:7:223 6.1.0.236-SNAPSHOT 176s

locally the import on my windows machine takes 10s with java 11 or 21

on my mac, same problem occurs

https://github.com/lucee/lucee-docs/blob/master/api/reference/ReferenceImporter.cfc#L290 takes 25ms or so per call, previously sub millsecond

var q_files = DirectoryList( path=fileDirectory, recurse=false, listinfo="query", type="all" );

Environment

None

Attachments

2
  • 10 Jul 2024, 03:56 pm
  • 10 Jul 2024, 12:35 pm

Details

Assignee

Reporter

Priority

Fix versions

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Sprint

Affects versions

Created 10 July 2024 at 12:26
Updated 29 December 2024 at 10:24
Resolved 10 July 2024 at 15:56

Activity

Show:

Zac Spitzer10 July 2024 at 15:56

much better!!!

Michael Offner10 July 2024 at 15:16

problem is when query for directoryList is created, Lucee validates the type of the column “mode“ what causes it to be called.

lucee-1 | java.lang.Exception: Stack trace lucee-1 | at lucee.aprint.ds(aprint.java:67) lucee-1 | at lucee.aprint.ds(aprint.java:94) lucee-1 | at lucee.commons.io.res.type.file.FileResource.getMode(FileResource.java:396) lucee-1 | at lucee.commons.io.res.util.ModeObjectWrap.toString(ModeObjectWrap.java:65) lucee-1 | at lucee.commons.io.res.util.ModeObjectWrap.castToString(ModeObjectWrap.java:115) lucee-1 | at lucee.runtime.op.Decision.isString(Decision.java:979) lucee-1 | at lucee.runtime.op.Decision.isCastableToString(Decision.java:991) lucee-1 | at lucee.runtime.type.QueryColumnUtil.reDefineString(QueryColumnUtil.java:189) lucee-1 | at lucee.runtime.type.QueryColumnUtil.reDefineType(QueryColumnUtil.java:87) lucee-1 | at lucee.runtime.type.QueryColumnImpl.reDefineType(QueryColumnImpl.java:455) lucee-1 | at lucee.runtime.type.QueryColumnImpl.set(QueryColumnImpl.java:339) lucee-1 | at lucee.runtime.type.QueryImpl.setAt(QueryImpl.java:1265) lucee-1 | at lucee.runtime.type.QueryImpl.setAt(QueryImpl.java:1256) lucee-1 | at lucee.runtime.tag.Directory._fillQueryAll(Directory.java:600) lucee-1 | at lucee.runtime.tag.Directory.actionList(Directory.java:479) lucee-1 | at lucee.runtime.functions.file.DirectoryList._call(DirectoryList.java:57) lucee-1 | at lucee.runtime.functions.file.DirectoryList.call(DirectoryList.java:51)

Michael Offner10 July 2024 at 13:59

if not the case we simply roll back that change

Michael Offner10 July 2024 at 13:59

mode should be only read when it is also read, make sure you don’t have for example a dump of a directory somewhere, that would make it slow of course, but as long you don’t read that value it should have no effect. please make sure that is not the case.

Flag notifications