Question
Accélérer la conversion de Timestamps
- Thierry
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 42
- Remerciements reçus 0
il y a 15 ans 1 mois #9303
par Thierry
Accélérer la conversion de Timestamps a été créé par Thierry
Bonjour à tous,
Je vous sollicite de nouveau pour savoir si la méthode que j'utilise ci-dessous pour convertir des timestamps peut-être optimisée...en effet pour convertir près de 8000 timestamps mon ordi (7, i7) met environ 5 minutes...c'est long.
Selon vous existe t'il une solution pour accélerer le processus ?
Le script extrait dans une variable les champs provenant d'un fichier SQLite.
Ensuite j'extrais de cette variable tous les timestamps, je les passe à \"sort -unique\" et je les convertis l'un après l'autre en date lisible (UTC).
A chaque étape je modifie la variable d'origine en remplaçant le timestamp traité par la date lisible...
Merci par avance de vos conseils.
[code:1]
if ($unix) # si la variable n'est pas vide
{
foreach ($timestamp in $unix)
{
$date = [DOUBLE]$timestamp
$datesimple = $date / 1000000
$horo = get-date -year 1601 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0
$horo = $horo.AddSeconds($datesimple)
$horo = get-date $horo -uformat \"%e/%m/%Y %T\"
$file = $file -replace $timestamp , $horo
} # fin foreach
[/code:1]
Je vous sollicite de nouveau pour savoir si la méthode que j'utilise ci-dessous pour convertir des timestamps peut-être optimisée...en effet pour convertir près de 8000 timestamps mon ordi (7, i7) met environ 5 minutes...c'est long.
Selon vous existe t'il une solution pour accélerer le processus ?
Le script extrait dans une variable les champs provenant d'un fichier SQLite.
Ensuite j'extrais de cette variable tous les timestamps, je les passe à \"sort -unique\" et je les convertis l'un après l'autre en date lisible (UTC).
A chaque étape je modifie la variable d'origine en remplaçant le timestamp traité par la date lisible...
Merci par avance de vos conseils.
[code:1]
if ($unix) # si la variable n'est pas vide
{
foreach ($timestamp in $unix)
{
$date = [DOUBLE]$timestamp
$datesimple = $date / 1000000
$horo = get-date -year 1601 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0
$horo = $horo.AddSeconds($datesimple)
$horo = get-date $horo -uformat \"%e/%m/%Y %T\"
$file = $file -replace $timestamp , $horo
} # fin foreach
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 1 mois #9304
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Accélérer la conversion de Timestamps
Salut,
le premier appel à Get-Date peut être placé en dehors de la boucle et pour le second appel utilise l'opérateur de formatage -F (à tester).
Et essaie de créer une collection d'objet au lieu d'écrire dans le fichier à chaque itération.
le premier appel à Get-Date peut être placé en dehors de la boucle et pour le second appel utilise l'opérateur de formatage -F (à tester).
Et essaie de créer une collection d'objet au lieu d'écrire dans le fichier à chaque itération.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Thierry
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 42
- Remerciements reçus 0
il y a 15 ans 1 mois #9317
par Thierry
Réponse de Thierry sur le sujet Re:Accélérer la conversion de Timestamps
Salut,
j'ai essayé de déplacer le 1er appel à get-date mais j'obtiens une erreur :
[code:1]L'appel de la méthode a échoué parce que [System.String] ne contient pas de méthode nommée « AddSeconds ».
Au niveau de D:\Informatique\Programmation\PowerShell\Scripts\Xtract\Xtract-dev\scripts\Chrome.ps1 : 357 Caractère : 65
+ $horo = $horo.AddSeconds <<<< ($datesimple)
+ CategoryInfo : InvalidOperation: (AddSeconds:«»String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound[/code:1]
C'est étrange car dès que je sort $horo de la boucle il le voit comme un objet \"string\"...j'ai pas compris.
Pour moi les Array et les collections étaient la même chose mais a priori ce n'est pas le cas...pourrais tu préciser SVP...
Je n'ai pas encore eu le temps de voir ce qu'il en est de l'opérateur de formatage -f...je vais creuser un peu
Merci
Thierry
j'ai essayé de déplacer le 1er appel à get-date mais j'obtiens une erreur :
[code:1]L'appel de la méthode a échoué parce que [System.String] ne contient pas de méthode nommée « AddSeconds ».
Au niveau de D:\Informatique\Programmation\PowerShell\Scripts\Xtract\Xtract-dev\scripts\Chrome.ps1 : 357 Caractère : 65
+ $horo = $horo.AddSeconds <<<< ($datesimple)
+ CategoryInfo : InvalidOperation: (AddSeconds:«»String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound[/code:1]
C'est étrange car dès que je sort $horo de la boucle il le voit comme un objet \"string\"...j'ai pas compris.
Et essaie de créer une collection d'objet au lieu d'écrire dans le fichier à chaque itération.
Pour moi les Array et les collections étaient la même chose mais a priori ce n'est pas le cas...pourrais tu préciser SVP...
Je n'ai pas encore eu le temps de voir ce qu'il en est de l'opérateur de formatage -f...je vais creuser un peu
Merci
Thierry
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 15 ans 1 mois #9319
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:Accélérer la conversion de Timestamps
thierry92 écrit:
[code:1]
$horo = get-date -year 1601 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0
[/code:1]
thierry92 écrit:
thierry92 écrit:
je parlais de celui-là :j'ai essayé de déplacer le 1er appel à get-date mais j'obtiens une erreur :
[code:1]
$horo = get-date -year 1601 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0
[/code:1]
thierry92 écrit:
Au temps pour moi %-\, il n'y a pas d'accès fichier.Pour moi les Array et les collections étaient la même chose mais a priori ce n'est pas le cas...pourrais tu préciser SVP...
thierry92 écrit:
Voir le dernier lien ici .Je n'ai pas encore eu le temps de voir ce qu'il en est de l'opérateur de formatage -f...je vais creuser un peu
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Thierry
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 42
- Remerciements reçus 0
il y a 15 ans 1 mois #9320
par Thierry
Réponse de Thierry sur le sujet Re:Accélérer la conversion de Timestamps
salut,
C'est bien le premier que j'ai déplacé...
merci pour le lien
Thierry
C'est bien le premier que j'ai déplacé...
merci pour le lien
Thierry
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.042 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Accélérer la conversion de Timestamps