openThatCpp 2020-11-06 10:11 采纳率: 0%
浏览 37

ArcEngine 新建一个IPoint接口,在执行exe的时候,比在调试的过程中更加耗时。

我的任务是生成多个Polygon,Polygon由PointCollection添加点而生成。经过测试,以下代码在release调试过程耗时3.74秒,在执行exe时,耗时5.68秒。

Stopwatch pStw = new Stopwatch();
pStw.Start(); pStw.Stop();

IPoint pPoint = null;
IPointCollection pPointCollection = null;
List<IPolygon> pPolygonSet = new List<IPolygon>();

pStw.Restart();
for (int i = 0; i < 10000; i++)
{
    pPointCollection = new ESRI.ArcGIS.Geometry.Polygon() as IPointCollection;

    pPoint = new ESRI.ArcGIS.Geometry.Point();
    pPoint.PutCoords(i,0);
    pPointCollection.AddPoint(pPoint);

    pPoint = new ESRI.ArcGIS.Geometry.Point();
    pPoint.PutCoords(i+1,0);
    pPointCollection.AddPoint(pPoint);

    pPoint = new ESRI.ArcGIS.Geometry.Point();
    pPoint.PutCoords(i+1,1);
    pPointCollection.AddPoint(pPoint);

    pPoint = new ESRI.ArcGIS.Geometry.Point();
    pPoint.PutCoords(i,1);
    pPointCollection.AddPoint(pPoint);

    pPoint = new ESRI.ArcGIS.Geometry.Point();
    pPoint.PutCoords(i,0);
    pPointCollection.AddPoint(pPoint);

    IPolygon pPolygon = pPointCollection as IPolygon;
    pPolygonSet.Add(pPolygon);
}
pStw.Stop();
Console.WriteLine(pStw.Elapsed.TotalSeconds);
Console.ReadKey();

进一步测试发现,问题出现在以下代码(即新建一个IPointCollection接口以及新建一个IPoint接口),以下代码在release调试过程耗时3.538秒,在执行exe时耗时5.882秒。

    pPointCollection = new ESRI.ArcGIS.Geometry.Polygon() as IPointCollection;

    pPoint = new ESRI.ArcGIS.Geometry.Point();

问题应该不是出在StopWatch测试时间这块。
请问大家,有碰到过这种情况嘛?可能会是什么原因?

 

 

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 java在应用程序里获取不到扬声器设备
    • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
    • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
    • ¥15 Attention is all you need 的代码运行
    • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
    • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
    • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
    • ¥30 关于<main>标签页面跳转的问题
    • ¥80 部署运行web自动化项目
    • ¥15 腾讯云如何建立同一个项目中物模型之间的联系