问题标签 [app-startup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2055 浏览

c# - Application.Run 和 Form.Load 之间会发生什么?

我有一个用 VB.NET 为 Framework 4.5 编写的 WinForms 应用程序。我注意到应用程序的启动时间异常长(我编写的其他在启动时做更多工作的应用程序几乎立即启动,这个应用程序需要> 5秒)多次启动后启动时间不会改变,所以我猜这不是应用程序首次启动期间未缓存的 CLR 代码的情况。

我通过在启动期间记下时间进行了一些测试:

Sub Main()是应用程序的入口点。它运行frmMain,我可以控制的第一件事是Sub InitializeComponent()由设计师生成:

最后我到达了Form.Load活动

现在,MyLog 的输出如下:

您可以看到,主要停顿发生在Application.Run()和之间Sub InitializeComponent()。我从其他问题中知道,GUI 线程启动了一个消息循环,但我不知道为什么这个应用程序比其他应用程序慢得多。

所以我的问题是:Application.Run 和我重新控制代码之间到底发生了什么,我可以做些什么来加快它的速度吗?在那里完成的工作是否与表单上的组件相关?

我已经尝试过使用frmMain.ShowDialog()而不是Application.Run(frmMain),但这导致了相同的结果。我正在使用 Visual Studio Express,所以很遗憾我不能使用更深入的性能分析器。

将其标记为 C# 和 VB.NET,因为两种语言的答案都非常受欢迎。

编辑
我做了更多的测试,包括 SLaks answer 中提出的解决方案。使用NGEN预编译程序集似乎没有任何明显的效果。所以我猜这不是代码的JIT编译InitializeComponent

然而,我注意到,在其他系统上,该程序几乎可以立即启动(快 10 倍以上),即使所讨论的计算机在所有方面都较慢。计算机之间的区别在于操作系统:

这些只是更多的线索,我真的不知道它是否有助于回答。

编辑 2
在启动期间查看 ProcMon 我发现执行挂起在以下几行:

该问题仅在发布版本中进一步出现,并且仅在我直接从 Windows 资源管理器启动程序时出现。调试版本会立即启动(0.3 秒,而 5-10 秒),从 Visual Studio 启动的发布版本也是如此。

0 投票
1 回答
6003 浏览

sql-server - SQL Server 的 Hangfire 配置

我正在编写一个 MVC 5 互联网应用程序,并希望Hangfire用于重复性任务。

我如何设置Hangfire使用SQL Server storage而不在Startup.Auth ConfigureAuth(IAppBuilder app)函数中指定它。

这是 SQL Server 配置的资源链接:http: //docs.hangfire.io/en/latest/configuration/using-sql-server.html

该资源指出:

如果要在不适用 OWIN Startup 类的 Web 应用程序之外使用 Hangfire,请手动创建 SqlServerStorage 实例并将其传递给 JobStorage.Current 静态属性。参数是一样的。

示例代码如下:

我尝试了以下代码(使用我自己的连接字符串),但仪表板不可用。我已经从控制器函数中调用了上面的代码。

有什么我没有做对的吗?如何在不使用类的情况下设置Hangfire使用?SQL Server storageStartup.Auth

提前致谢。

0 投票
2 回答
1783 浏览

java - Android Studio 仅更改一次启动活动

我正在开发一个带有导航抽屉的Android应用程序以这种方式工作:用户打开应用程序并弹出一个教程(一个带有寻呼机滑动片段的活动,称为ScreenSlideActivity.java);当用户完成滑动教程时,他按下“完成”按钮导致 MainActivity 的初始化(创建一个drawerLayout,drawerToggle等)

我需要做的是在应用程序首次启动后只打开一次教程活动。

我在主活动中尝试过这段代码:

确保 ScreenSlideActivity.java 立即启动。这个解决方案的问题是,当教程打开时,我不能再从那里访问 MainActivity.java,既不能从“向上”按钮也不能从教程最后一页的“完成”按钮,可能是因为某种原因我不再将主要活动作为父活动。

然后我尝试了这个解决方案更改应用程序的启动活动 - Android修改清单 xml 文件。添加:

到 ScreenSlideActivity。这个解决方案的问题是它改变了我的项目的结构,使我的 ScreenSlideActivity.java 作为 Main 和 Launching Activity(因此我不能再从这里访问 MainActivity),而我只想显示一次。

我还可以做些什么?

0 投票
2 回答
962 浏览

java - Eclipse RCP:正在运行的插件列表

我正在尝试改进我的 RCP 应用程序启动时间。
启用 30 个插件的启动时间与启用 10 个插件的启动时间不同,即使我所有的插件都是延迟初始化的(所以在启动后根据我的日志只加载了 10 个插件)。
我试图了解有什么不同,所以我想看看当前正在运行哪些插件。
有没有办法在 Eclipse 调试视图中查看正在运行的插件列表?

0 投票
0 回答
127 浏览

configuration - 在代码中配置 Glimpse

Glimpse 当前在 MVC5 的 Web 配置中配置,如下所示:

是否有可能使用 web 激活器或从全局 App Start 调用的类来配置代码中的一瞥?

0 投票
1 回答
3609 浏览

ios - iOS App 启动时间过长

我有一个应用程序:

  • 自定义顶栏和底栏,
  • 包含 5 个其他垂直滚动视图的水平滚动视图
  • 滚动视图充满了图像网格(没有集合视图)
  • 抓取时从左侧进入的视图(google play store 风格)

所以我在那里有一些观点,我不使用界面生成器。

如果我在 iPhone 4s 上启动我的应用程序(未处于调试模式),我的应用程序需要将近 10 秒才能加载,所以我的启动画面会持续 10 秒。

为什么我的应用需要这么长时间才能加载?

我测试了它,从内存中加载所有图像只需要 1.3 秒。

我的应用是否只需要 8.7 秒来加载我的布局?

我通过代码编写了所有布局,没有使用约束,我在 viewController 的 viewWillappear() 方法中为所有视图分配了框架大小和位置。

我怎样才能让它在开始时加载得更快?我在哪里做错了?可能是布局的加载错误吗?

谢谢

0 投票
1 回答
1427 浏览

android - 有没有办法使用外部配置文件分发 Android 应用程序?

我有一个 Android 应用程序需要在启动时读取一些自定义参数(例如 URL)。这些参数因客户而异。

我期望做的是:

  • “广播”APK
  • 为每个客户提供特定的参数文件(在名为 custom_par.xml 的外部单独文件中)以在启动时读取

我不想在app项目里面有一个配置文件:如果我需要把app给一个新客户,我只需要给他写一个新的custom_par.xml,和标准一起打包”常见”APK。

是否可以?

0 投票
1 回答
3923 浏览

profiling - 使用 DotTrace 性能时如何理解“本机或优化代码”中的性能问题

我在我的 Web 应用程序上使用 DotTrace Performance (v 5.5.4)。我正在尝试在冷启动 MVC 5 应用程序后优化页面加载时间。查看快照上的主线程,似乎大部分工作都是在“本机或优化代码”中完成的。这似乎有点过于笼统,并没有真正的帮助。这到底意味着什么,我该如何进一步深入研究?

在此处输入图像描述

注意:我在 jetbrains 论坛上找到了类似的帖子,但那里似乎也没有发布任何解决方案。

0 投票
3 回答
7163 浏览

logging - 我可以为 Spring Boot 应用程序配置启动和关闭日志吗?

为了能够验证 Spring Boot 应用程序的启动和关闭,我们希望配置一个 startup.log 和 shutdown.log 捕获启动和关闭应用程序的事件。

为了启动一切:

并从以下位置关闭所有内容:

到最后。

这是特定于容器的东西吗?(Tomcat vs Jetty vs Undertow)

0 投票
1 回答
950 浏览

exe - 在启用了 UAC 的 Windows 2008 服务器上重新启动计算机上运行 EXE

我有一个 exe,它在系统重新启动时作为启动进程运行。在启用 UAC 的机器上,它阻止了我的 exe 的启动。我该如何解决这个问题?